2011-09-14 7 views
5

पर डाला नहीं जा सकता है, मैं एक EntityManager के साथ हाइबरनेट का उपयोग कर रहा हूं। जब मैंहाइबरनेट java.lang.ClassCastException: org.hibernate.action.EntityIdentityInsertAction को org.hibernate.action.EntityInsertAction

Session session = (Session)entityManager.getDelegate(); 
    session.flush(); 
    session.clear(); 

का उपयोग मैं

java.lang.ClassCastException: org.hibernate.action.EntityIdentityInsertAction cannot be cast to org.hibernate.action.EntityInsertAction 
at org.hibernate.engine.ActionQueue$InsertActionSorter.sort(ActionQueue.java:636) 
at org.hibernate.engine.ActionQueue.sortInsertActions(ActionQueue.java:369) 
at org.hibernate.engine.ActionQueue.sortActions(ActionQueue.java:355) 
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:224) 
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99) 
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) 
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) 

पाने के बाद से यह कहना नहीं है जो इकाई समस्या का कारण बनता है, मैं यहाँ अटक कर रहा हूँ। किसी को भी एक विचार यह पैदा कर सकता है क्या है?

उत्तर

2

यह हाइबरनेट में एक बग है। अपवाद फेंक दिया जाता है जब निम्नलिखित शर्तें पूरी की:

  • आईडी पीढ़ी रणनीति identity
  • इकाई लेनदेन के बाहर सहेजा जाता है
  • hibernate.order_insertstrue

यह इसलिए होता है क्योंकि EntityIdentityInsertAction में जोड़ा जा सकता है ActionQueue.insertions सूची है, जबकि ActionQueue$InsertActionSorter को उम्मीद है कि यह केवल EntityInsertAction रों में शामिल है।

ऐसा लगता है कि इस बग की तरह अभी तक रिपोर्ट नहीं था, इसलिए feel free to report it

शायद आप एक समाधान के रूप hibernate.order_inserts का मूल्य बदल सकते हैं।