org.hibernate.AssertionFailure:无法执行取消删除例如 [英] org.hibernate.AssertionFailure: Unable to perform un-delete for instance
问题描述
我无法找到任何有关此无法执行的操作的信息未删除的错误,除了soure代码,所以我认为,也许我正在做一些明显错误的事情......
堆栈跟踪
AssertionFailure:43 - - HHH000099:发生断言失败(这可能表示Hibernate中存在一个错误,但更多可能是由于不安全使用会话):org.hibernate.AssertionFailure:无法执行取消删除例如X
org.hibernate.AssertionFailure:无法执行取消删除例如X
。在组织.hibernate.engine.spi.ActionQueue.unScheduleDeletion(ActionQueue.java:508)
在org.hibernate.event.internal.DefaultPersistEventListen er.onPersist(DefaultPersistEventListener.java:157)
在org.hibernate.internal.SessionImpl.firePersistOnFlush(SessionImpl.java:870)
在org.hibernate.internal.SessionImpl.persistOnFlush(SessionImpl.java: 863)
at org.hibernate.engine.spi.CascadingAction $ 8.cascade(CascadingAction.java:346)
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380)
。在org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
在org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
。在org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165)
处org.hibernate作为org.hibernate.event.internal.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:423)
。 event.internal.DefaultPersistEventListener.justCascade(DefaultPersistEventListener.java:190)
在org.hibernate.event.internal.DefaultPersistEventListener.entityIsDeleted(DefaultPersistEventListener.java:229)
在org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:158)
在org.hibernate.internal.SessionImpl.firePersistOnFlush(SessionImpl.java:870)
在org.hibernate.internal .SessionImpl.persistOnFlush(SessionImpl.java:863)维持在org.hibernate.engine.internal.Cascade org.hibernate.engine.spi.CascadingAction $ 8.cascade(CascadingAction.java:346)
。 cascadeToOne(Cascade.java:380)
位于org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
位于org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade。 Java的:208),美元,org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165 b $ b)
在org.hibernate.event.internal.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:423)
at org.hibernate.event.internal.DefaultPersistEventListener.justCascade(DefaultPersistEventListener.java:190)
at org.hibernate.event.internal.DefaultPersistEventListener.ent ityIsPersistent(DefaultPersistEventListener.java:183)
在org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:147)
在org.hibernate.internal.SessionImpl.firePersistOnFlush(SessionImpl.java: 870)
org.hibernate.internal.SessionImpl.persistOnFlush(SessionImpl.java:863)
at org.hibernate.engine.spi.CascadingAction $ 8.cascade(CascadingAction.java:346)
。在在org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380)
。在组织。 hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
位于org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:409)
位于org.hibernate.engine。 internal.Cascade.cascadeCollection(Cascade.java:350)
位于org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326)
位于org.hibernate.engine.internal.Cascade。 cascadePro perty(Cascade.java:208)
在org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165)
在org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener。的java:160)
。在org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:151)
。在org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:88)在org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
在org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1186)
。在组织.hibernate.internal.SessionImpl.list(SessionImpl.java:1241)
在org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
在org.hibernate.ejb.QueryImpl.getResultList (QueryImpl.java:257)
在org.hibernate.ejb.criteria.CriteriaQueryCompiler $ 3.getResultList(Criter iaQueryCompiler.java:254)
问候,
我有同样的问题。发生了什么事是我删除了相关的bean,让我们称它们为A和B.我已经删除了Bs,然后继续查找连接到As的实体C,并给出了类型A的bean作为查询的参数,并使查询导致了这个异常。我最好的猜测是,实体D上引用A和B的Cascade注释已经删除了As,当我删除了Bs,然后给出了在DB级别上已经删除的实体作为查询的参数导致问题。 p>
重新排列代码,以便首先将C中的引用从A删除,然后继续删除B和A似乎解决了这个问题。 / p> I am getting this hibernate assertion error, when i try to make a read after some delete operations. I couldn't find anything regarding this ' Unable to perform un-delete' error, except the soure code, so i think that, maybe i am doing something so obviously wrong... The stack trace is below, Regards, I had this same problem. What happened is that I was deleting related beans, let's call them A and B. I had deleted Bs and then proceeded to find entities C that link to As, and gave bean of type A as parameter to query and making the query caused this Exception. My best guess is that a Cascade annotation on the entity D, referencing both A and B, had deleted the As when I deleted the Bs and then giving an entity that was already deleted on DB level as parameter to query cause the problem. Rearranging the code so that I first remove the references from C to A and then proceed to delete both B and A seems to work around this. 这篇关于org.hibernate.AssertionFailure:无法执行取消删除例如的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!AssertionFailure:43 - - HHH000099: an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session): org.hibernate.AssertionFailure: Unable to perform un-delete for instance X
org.hibernate.AssertionFailure: Unable to perform un-delete for instance X
at org.hibernate.engine.spi.ActionQueue.unScheduleDeletion(ActionQueue.java:508)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:157)
at org.hibernate.internal.SessionImpl.firePersistOnFlush(SessionImpl.java:870)
at org.hibernate.internal.SessionImpl.persistOnFlush(SessionImpl.java:863)
at org.hibernate.engine.spi.CascadingAction$8.cascade(CascadingAction.java:346)
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380)
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165)
at org.hibernate.event.internal.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:423)
at org.hibernate.event.internal.DefaultPersistEventListener.justCascade(DefaultPersistEventListener.java:190)
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsDeleted(DefaultPersistEventListener.java:229)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:158)
at org.hibernate.internal.SessionImpl.firePersistOnFlush(SessionImpl.java:870)
at org.hibernate.internal.SessionImpl.persistOnFlush(SessionImpl.java:863)
at org.hibernate.engine.spi.CascadingAction$8.cascade(CascadingAction.java:346)
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380)
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165)
at org.hibernate.event.internal.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:423)
at org.hibernate.event.internal.DefaultPersistEventListener.justCascade(DefaultPersistEventListener.java:190)
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsPersistent(DefaultPersistEventListener.java:183)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:147)
at org.hibernate.internal.SessionImpl.firePersistOnFlush(SessionImpl.java:870)
at org.hibernate.internal.SessionImpl.persistOnFlush(SessionImpl.java:863)
at org.hibernate.engine.spi.CascadingAction$8.cascade(CascadingAction.java:346)
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380)
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:409)
at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:350)
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326)
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165)
at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:160)
at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:151)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:88)
at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1186)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1241)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:257)
at org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getResultList(CriteriaQueryCompiler.java:254)