2011-09-14 12 views
5

için kullanılamaz Bir EntityManager ile Hazırda Bekletme özelliğini kullanıyorum. BenHibernate java.lang.ClassCastException: org.hibernate.action.EntityIdentityInsertAction org.hibernate.action.EntityInsertAction

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

kullandığınızda bu soruna neden olan varlık demiyor beri ben burada sıkışıp kaldım,

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) 

olsun. Bunun neden olabileceği hakkında bir fikri olan var mı?

cevap

2

Hazırda bekletme hatası var. İstisna aşağıdaki koşullar karşılandığında atılır:

  • id nesil strateji identity
  • varlık
  • hibernate.order_insertsEntityIdentityInsertAction eklenebilir diye bir şey yok true

olan hareketin dışında kaydedilir olduğunu ActionQueue.insertions listesi, ActionQueue$InsertActionSorter ise sadece EntityInsertAction s içeriyor olmasını bekler.

Bu hata henüz bildirilmemiş gibi görünüyor, yani feel free to report it.

Belki de bir geçici çözüm olarak hibernate.order_inserts değerini değiştirebilirsiniz.

İlgili konular