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(以上部分內容轉自此篇文章)