NonUniqueObjectException
I got the following exception using RAD 7.0 and WAS 6.1 with Hibernate:
Randomly we come across scenarios where we get a NonUniqueObjectException. It occurs during updates and inserts.
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [uk.co.argos.puma.persistence.pojo.Page#6494]
at org.hibernate.engine.PersistenceContext.checkUniqueness
(PersistenceContext.java:586)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate
(DefaultSaveOrUpdateEventListener.java:254)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached
(DefaultSaveOrUpdateEventListener.java:214)
at org.hibernate.event.def.DefaultUpdateEventListener.performSaveOrUpdate
(DefaultUpdateEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate
(DefaultSaveOrUpdateEventListener.java:69)
at org.hibernate.impl.SessionImpl.update(SessionImpl.java:495)
at org.hibernate.impl.SessionImpl.update(SessionImpl.java:486)
----------------------------------------------------------------------------------------
SOLUTION : -
Hibernate provides various options for Transaction management-
1. ThreadLocal - transactions associated with the life of calling thread.
2. JTA- Hibernate will Use JTA for Transaction Management.
3. Container managed transactions- Hibernate will hook itself to the application servers transaction context (Best Approach).
NonUniqueObjectException occurs when we are trying to attach a detached instance to hibernate sesion which is already loaded in hibernate session.
So in such scenarios, we should use session.merge() instead of session.persist() as
Session.merge() will do a double check for any loaded instance and will try to synchronize the detached instance with persisted instance.
About this entry
You’re currently reading “NonUniqueObjectException,” an entry on Quality Obsessed
- Published:
- 06.02.08 / 9am
- Rate article:
Printer Friendly

No comments
Jump to comment form | comments rss [?] | trackback uri [?]