Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
The moose likes Object Relational Mapping and the fly likes Problem in adding/updating and deleting child records...... Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of OCA Java SE 8 Programmer I Study Guide this week in the OCAJP 8 forum!
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "Problem in adding/updating and deleting child records......" Watch "Problem in adding/updating and deleting child records......" New topic

Problem in adding/updating and deleting child records......

sajjad ahmad
Ranch Hand

Joined: Jan 23, 2003
Posts: 78
i Have found CustomerInfo Object (with cascade="all" attribute in configuration file),and now trying to update it i do the following

Set a = customerInfo.getCustomerAccounts();
/*customerAccount1 with no primery key (i want to save this record for first time)
/*customerAccount2 with primery key i want this record to be updated in database
/*customerAccount3 with pk i want this record to be deleted

but when i try to session.saveUpdate(customerInfo) and then session.close(),i get following exception.

net.sf.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: 474, of class: com.cstel.personalloan.hibernate.CustomerAccount

Can anybody plz tell me where i am doing something wrong.
also there is a case where i want to first delete all those old records in a set and then add new records to it , i am using a.clear() for that is that ok r i should have to do something else for it.
thanks in advance.
Thomas Bigbee
Ranch Hand

Joined: Nov 29, 2001
Posts: 48
I don't know what your exact code looks like, however, please let me take a shot at what may be the cause of your problems.

When you are in-between a transaction and you are adding and updating, etc.. noting is reflected until you do a or a session.saveOrUpdate(aClass) and then issue a flush(), changes are not being persisted so you are dealing with phantom objects (records) that do not exist, at least that's my story, and I'm sticking with it (for now).

On your save you should get a primary key back (as long as you are not using session.persist()

youPersistedId = (Integer);

Please accertain that this may be your issue. If I have nudged you in the wrong direction, you have my apolgies.

It is sorta covered in the JavaRanch Style Guide.
subject: Problem in adding/updating and deleting child records......
It's not a secret anymore!