午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:195日期:2023-02-19 18:55:53
SpringBoot JPA懶加載失效

使用springBoot JPA 對(duì)兩個(gè)實(shí)體類進(jìn)行雙向關(guān)聯(lián),并設(shè)置了懶加載,如下:

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

然后在查詢后用到了roles,會(huì)報(bào)錯(cuò),

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

解決辦法如下:

1. 在配置文件中加入:

spring.jpa.properties.hibernate.enable_lazy_load_no_trans =true

2. 如果你是在SpringBoot的測(cè)試類 中使用報(bào)錯(cuò),則在方法上加入@Transactional注解

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

JPA懶加載引起的bug

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

如下圖

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

1:讀取的產(chǎn)品product的實(shí)際庫(kù)存stock是20,凍結(jié)庫(kù)存frozenStock是0;

2:減少該產(chǎn)品實(shí)際庫(kù)存5,凍結(jié)庫(kù)存+5;

3:重新查詢?cè)摦a(chǎn)品

問(wèn)題:兩個(gè)單元校驗(yàn),發(fā)現(xiàn)實(shí)際算出來(lái)的庫(kù)存差值不是5是0!

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

解決:

在實(shí)體類上加上@Proxy(lazy = false)取消懶加載,直截了當(dāng)(暫時(shí)沒(méi)想到別的)

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

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧美一级欧美三级在线观看 | 国产日韩欧美 | 日日噜| 一级特黄aaa | 天天干天天干天天干 | 午夜在线观看视频网站 | 在线观看成人免费 | 日本一区二区三区在线观看视频 | 国产精品777 | 超碰1000 | 欧美成人免费 | www.av欧美| 久久激情免费视频 | 中文字幕在线看 | 一级特黄aa大片欧美 | 国产精品二区视频 | 一区二区视屏 | 欧美日韩精品久久 | 亚洲久久影院 | 成人免费毛片观看 | 天天做夜夜爽 | 欧美一级艳片视频免费观看 | 午夜爽爽爽男女免费观看 | 日本不卡一区二区 | 一级国产片 | 人人干网站| 免费毛片观看 | 午夜天堂网 | 高潮一区二区 | 精品福利一区二区三区 | 一区二区三区视频在线播放 | 日韩av网址在线观看 | 国产激情片 | 成人aaaa| 久久综合九色 | 俺也去在线视频 | 日本中文在线观看 | 在线不卡一区 | 成人免费看片视频在线观看 | 在线观看国产日韩 | 亚洲国产精品成人综合久久久 |