Hi Abid,

Abid Hussain wrote:
Hi everybody,

i wonder how to perform an update on a table where i changed the primary key.

You can't change a PK value in OJB and at least OJB needs one PK field.


Let's say i've got a table, where the only unique column is the primary key itself - like this:
CREATE TABLE foo (

    foo_name VARCHAR PRIMARY KEY
);

For this special case you have to delete the old value/obj and then insert the new vale/obj.

regards,
Armin


Now I change the column foo_name of a row from 'bla' to 'blub' and perform an update.
In SQL, I would do this:
UPDATE foo SET foo_name = 'blub' WHERE foo_name = 'bla';

When using OJB I would first retrieve the object I want to update:
Foo foo = new Foo();
foo.setFooName("bla");
Query q = new QueryByIdentity(foo);
foo = (Foo) broker.getObjectByQuery(q);

Then set the attribute fooName:
foo.setFooName("blub");)

Then perform update:
broker.store(foo, ObjectModification.UPDATE);

But how should OJB identify the object which is to be updated? I just have changed the primary key and there are not other unique columns!

Any ideas?

Regards,

Abid Hussain



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to