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


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

解釋:https://vladmihalcea.com/2016...

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

 

參考:

https://segmentfault.com/q/1010000012794754

https://segmentfault.com/a/1190000009150966(以上部分內容轉自此篇文章)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM