I'm using Hibernate with an EntityManager. When I use
Session session = (Session)entityManager.getDelegate();
session.flush();
session.clear();
I get
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)
Since it doesn't say which entity causes the problem, I'm stuck here. Does anyone have an idea what can cause this?
It's a bug in Hibernate. Exception is thrown when following conditions are met:
identity
hibernate.order_inserts
is true
It happens because EntityIdentityInsertAction
can be added to the ActionQueue.insertions
list, whereas ActionQueue$InsertActionSorter
expects that it contains only EntityInsertAction
s.
It looks like this bug was not reported yet, so feel free to report it.
Perhaps you can change the value of hibernate.order_inserts
as a workaround.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With