Spring Data JPA使用getOne方法報錯:Method threw 'org.hibernate.LazyInitializationException' exception. Cann

getOne是懶加載,須要增長這個配置: spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true,但這種方式不太友好,建議不要使用。spring

解釋:https://vladmihalcea.com/2016...數據庫

每次初始化一個實體的關聯就會建立一個臨時的session來加載,每一個臨時的session都會獲取一個臨時的數據庫鏈接,開啓一個新的事物。這就致使對底層鏈接池壓力很大,並且事物日誌也會被每次flush.
設想一下:假如咱們查詢了一個分頁list每次查出1000條,這個實體有三個lazy關聯對象,那麼,恭喜你,你至少須要建立3000個臨時session+connection+transaction.segmentfault

 

參考:session

https://segmentfault.com/q/1010000012794754hibernate

http://www.javashuo.com/article/p-uhlhtvyi-dx.html(以上部份內容轉自此篇文章)日誌

相關文章
相關標籤/搜索