Hello, I have a master object with N dependent objects. In the database table of the dependent objects there is a UNIQUE constraint:
CREATE TABLE dependent( id SERIAL PRIMARY KEY, master_id INTEGER NOT NULL REFERENCES master ON DELETE CASCADE, value VARCHAR(40), UNIQUE(master_id, value) ); Lets load a master object Database db; Master m = (Master) db.load(Master.class, new Integer(1)); then remove all of its dependents with master.getDependents().removeAllElements(); then add a new dependent object with a value that just has been removed: master.addDependent(" A VALUE THAT JUST HAS BEEN REMOVED "); The method invocation db.update(master); results an exception java.sql.SQLException: ERROR: Cannot insert a duplicate key since Castor handles the dependent objects in the following order: 1. First creates the dependent objects that are assigned to the master. (The UNIQUE constraint is violated!) 2, Then removes the dependent objects that have been disassociated from the master. I thinks so these operations should be performed in the opposite order. Is it a bug? Any idea to handle the situation? Yours sincerely, Peter ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev