当前位置: 代码迷 >> JBoss >> failed to lazily initialize a collection of role有关问题的解决
  详细解决方案

failed to lazily initialize a collection of role有关问题的解决

热度:11123   发布时间:2013-02-26 00:00:00.0
failed to lazily initialize a collection of role问题的解决
上网查了一下,说把lazy="false"即可,我改了,确实通过了
但是这样子必然会带来性能问题啊

因为lazy="false"的时候,load一个对象的时候,同时也把他的那些关联对象也load上来.


Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.huawei.etl.nx.db.entity.Etl3plan.etl3tasks - no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:191)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:183)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:48)
at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:134)
at com.huawei.etl.nx.operate.UpgradePlan.main(UpgradePlan.java:357)
其实hibernate在我重新load关联对象的时候,再次打开session不就OK吗?

请大虾指教

------解决方案--------------------------------------------------------
其实还有一个方法,就是你在load出来对象的时候,调用:hibernate.intialize(object).以后你再调用这个对象的关联对象时,就不会有exception了。
  相关解决方案