在做ssh項目練習的時候出現問題:
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role
原因在於hibernate的懶加載出現的問題。
在多方中的一方的配置沒有指定加載方式,而且一方中的多方是懶加載,因此在獲取一方的時候一方是獲取到了,但是再獲取多方的時候session已經關閉了,這時候會獲取不到多方信息,因此報錯。
解決辦法:
將一方中的多方(one-to-many)的加載方式改為立刻加載,而多方中的一方(many-to-one)改為懶加載即可。
即在一對多的一方加上 lazy="false"(one-to-many)