Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Hibernate Spring problem with Illegal attempt to associate a collection with two open sessions

 
Carlos Gosu
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

I'm having problems trying to update an object with a collection associated that was previously retrieved. If someone has faced the problem before it would be a great help.

The simplified code is the following:





Basicly the code that produces the exception is:


The implementation of saveMessage is:



I got the so called Illegal attempt to associate a collection with two open sessions in the getHibernateTemplate.saveOrUpdate(receiver); sentence. Any idea?

By the way I read around that it would be necessary to evict the object but I shouldn't evict the object out of the saveMessage for design reasons.
 
Vijitha Kumara
Bartender
Posts: 3913
9
Chrome Fedora Hibernate
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can you post the stack trace here?
 
Carlos Gosu
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The stack trace is the following:

GRAVE: org.hibernate.HibernateException: Illegal attempt to associate
a collection with two open sessions
at
org.hibernate.collection.AbstractPersistentCollection.setCurrentSession(AbstractPersistentCollection.java:
410)
at
org.hibernate.event.def.OnUpdateVisitor.processCollection(OnUpdateVisitor.java:
43)
at
org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:
101)
at
org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:
61)
at
org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:
55)
at
org.hibernate.event.def.AbstractVisitor.process(AbstractVisitor.java:
123)
at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:
293)
at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:
223)
at
org.hibernate.event.def.DefaultUpdateEventListener.performSaveOrUpdate(DefaultUpdateEventListener.java:
33)
at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:
70)
 
Amjad Aziz
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have same problem, and got fixed by putting @Transactional annotation.
Can you try
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic