Reinaldo Coelho Sartorelli <reinaldo.sartorell..ES.com> wrote:
> I dont use registerNewObject(system) because this is a update and not a
insert command.
> This object have a oid registred!!!
If it's already registered in con, you don't need to register it again.
If it's registered in another DataContext, either use that old DataContext
instead of con
oldCon = system.getDataContext();
or copy it into con using con.localObjects();
It's true that localObjects() calls registeredObject() internally, but it
also performs other checks and optimizations at the same time.
Registering a modified object in another DataContext is disallowed by
localObjects(), and that's probably why your update isn't working if con is
a different DataContext.
registeredObject() creates a new system object marked HOLLOW, so all of your
changes will be lost.
If you're bound and determined to register a modified object in another
DataContext via registeredObject(), you'll need to manually copy all of the
properties off the old object and onto the new object.
You'll have to use a method on the system class to copy it as system's
values Map (containing all of its properties) is marked protected.
-Mike
This archive was generated by hypermail 2.0.0 : Wed Jan 19 2005 - 14:17:13 EST