我有一个实体大型互连图(约1.2k)。当试图保存时,JVM抛出一个stackOverflowError(见下文)。实体/ orm类仅在连接节点的顶点上使用保存/更新级联。在较小的图形尺寸上,级联可以正常工作,但尺寸较大时会中断。有人可以提供一些文档或提供有关Hibernate可能的限制的任何洞察?大型连接图上的休眠SaveOrUpdate
依赖关系:
- 休眠4.0.1
- 的HyperSQL 2.2
实施例:
-Node_1
---- leaf_a => Node_2
----leaf_c => node_4
---- leaf_b => Node_3上
----leaf_d => node_5
JVM错误:在java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
java.lang.StackOverflowError的 在org.hibernate.service.internal.AbstractServiceRegistryImpl.locateServiceBinding(AbstractServiceRegistryImpl.java:114) 在org.hibernate.service.internal.AbstractServiceRegistryImpl.locateServiceBinding(AbstractServiceRegistryImpl.java:109) 在org.hibernate.service.internal.AbstractSer viceRegistryImpl.getService(AbstractServiceRegistryImpl.java:124) 在org.hibernate.internal.SessionImpl.eventListenerGroup(SessionImpl.java:624) 在org.hibernate.internal.SessionImpl.listeners(SessionImpl.java:620) 在有机hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:614) at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java :258) 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) 在org.hibernate.engine.internal。 Cascade.cascade(Cascade.java:165) at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:132) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal。 DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveO rUpdate(SessionImpl.java:615) 在org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) 在org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 在组织.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380) 在org.hibernate.engine.internal.Cascade.cascadeAssociation(级联。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.engine.internal.Cascade.cascade(Cascade.java:132) at org.hibernate。 event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) at org.hibernate.event.internal.DefaultSaveOr UpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) 在org.hibernate.internal.SessionImpl.saveOrUpdate( SessionImpl.java:608) 在org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 在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.engine.internal.Cascade.cascade(Cascade.java:132) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal。 DefaultSaveOrUpdateEventListener.performSaveOrUpdate(默认aveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) 在org.hibernate作为。 internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 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) 在org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165) 在org.hibernate.engine.internal.Cascade.cascade(Cascade.java:132) 在有机.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached (DefaultSaveOrUpdateEventListener.java:239) at org。hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl。 Java的:615) 在org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) 在org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 在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) at org.hibernate.engine.internal.Casca de.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.engine.internal。 Cascade.cascade(Cascade.java:132) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetach ED(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction .java:258) 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(CAS在org.hibernate.engine.internal.Cascade.cascade(Cascade.java:132) at org。 hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached( DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade (CascadingAction.java:258) 在org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380) 在org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323) 在有机.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。 engine.internal.Cascade.cascade(Cascade.java:132) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener。的java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate作为。 Ë vent.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) 在org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 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)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.engine.internal.Cascade.cascade(Cascade.java:132) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal。 DefaultSaveOrUpdateEventListener.performSaveOrUpdate(默认aveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) 在org.hibernate作为。 internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 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 .oclass.Cascade.cascade(Cascade.java:165) at org.hibernate.engine。 internal.Cascade.cascade(Cascade.java:132) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java: 335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event。 internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) at org.hibernate.internal。SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 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.Cas cade.cascade(Cascade.java:165) at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:132) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal。 DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) 在org.hibernate.internal.SessionImpl.fireSaveOrUp日期(SessionImpl.java:615) at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) at org.hibernate.engine.spi.CascadingAction $ 5.cascade(CascadingAction.java:258) 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) 在org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:409) 在org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:350) 在有机.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326) at org.hibernate.engine.internal.Cascade.cascadeProperty(C在org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165) at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:132) at org。 hibernate.event.internal.DefaultSaveOrUpdateEventListener.cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached( DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:9 0) 在org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:615) 在org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:608) 在org.hibernate.engine.spi.CascadingAction $ 5 (cascade.java:328) at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380) at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208) at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165) at org.hibernate.engine.internal.Cascade .cascade(Cascade.java:132) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener。cascadeOnUpdate(DefaultSaveOrUpdateEventListener.java:361) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:335) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:239) 在org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:109) 在
嘿rhinds - 这绝对是一个合法的递归过程,因为它是在级联保存/更新操作期间由Hibernate执行的。我可以增加堆栈,它可以工作,所以也许它就这么简单。很想知道是否有其他人遇到或遇到过任何相关信息。感谢您的链接。干杯, – 2012-03-26 15:26:38