1. 程式人生 > >解決hibernate懶載入異常

解決hibernate懶載入異常

事務的處理都是在service層進行解決

hibernate預設是進行懶載入  

那麼其實在service處理完事務後  session就會進行關閉  而當我們在頁面再去呼叫 本物件中的子物件的相關屬性的時候 因為session已經關閉了  所以就會存在懶載入異常 即session已經關閉

1.這裡有一種笨辦法 就是將他的懶載入變為急迫載入  但是這裡需要注意的問題是 如果當前物件關聯了很多子物件 那麼急切載入的時候 就會將他們全部加載出來 造成了資料冗餘 效率低下  這裡只提註解方式解決方法:

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "memberid")
public Member getMember() {
return this.member;
}

當然了 這種方法並不提倡 

2.有一種拼接語句的方法 既能達到我們的目的 也能提高效率

From Image i left join fetch i.member

這裡的member是image中的子物件

這樣就不會有懶載入異常的問題了