欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot JPA懶加載失效的解決方案(親測有效)

 更新時間:2021年08月03日 10:01:33   作者:熊熊愛綿羊  
這篇文章主要介紹了SpringBoot JPA懶加載失效的解決方案(親測有效),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot JPA懶加載失效

使用springBoot JPA 對兩個實體類進行雙向關聯(lián),并設置了懶加載,如下:

然后在查詢后用到了roles,會報錯,

解決辦法如下:

1. 在配置文件中加入:

spring.jpa.properties.hibernate.enable_lazy_load_no_trans =true

2. 如果你是在SpringBoot的測試類 中使用報錯,則在方法上加入@Transactional注解

在百度查詢時發(fā)現(xiàn)有人說 修改該配置: spring.jpa.open-in-view=true ,經(jīng)測試,該項配置默認就是true,并且沒有用。

JPA懶加載引起的bug

自己閑暇用JPA寫了個ORM操作的練習,發(fā)現(xiàn)一個詭異的問題。

如下圖

1:讀取的產品product的實際庫存stock是20,凍結庫存frozenStock是0;

2:減少該產品實際庫存5,凍結庫存+5;

3:重新查詢該產品

問題:兩個單元校驗,發(fā)現(xiàn)實際算出來的庫存差值不是5是0!

博主通過查詢商品信息findProductById()方法得到答案。如下圖,調用方法返回的實體類product的屬性都是null,F(xiàn)7進入調試才去查詢產品的信息,查完之后才打印產品的名稱,即類的"懶加載"。所以在步驟1之后,步驟2修改了庫存,重新讀取product的庫存已經(jīng)是扣減過的15了。

解決:

在實體類上加上@Proxy(lazy = false)取消懶加載,直截了當(暫時沒想到別的)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論