org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: XXXX

這個異常:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.joshua.ss.entity.SysUsers.sysUsersRoleses, no session or session was closed
Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.joshua.ss.entity.SysUsers.sysUsersRoleses, no session or session was closed
	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186)


原因:在hibernate的映射關係中由於延遲加載,之前的操作使session已經關閉,所以加載set屬性時無可用session
解決辦法:在映射文件中設置set屬性 lazy='false'
<set name="sysUsersRoleses" inverse="true" cascade="all" lazy="false">
            <key>
                <column name="USER_ID" length="32" />
            </key>
            <one-to-many class="org.joshua.ss.entity.SysUsersRoles" />
        </set>

具體參考:http://fendoubattier.iteye.com/blog/1040236
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章