国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

解決spring jpa中update的坑

瀏覽:5日期:2023-06-27 09:06:51
spring jpa中update遇到的坑

使用jpa 自己編寫update語句,

遇到問題:

1.在同一個service事物中,先執(zhí)行保存,在執(zhí)行更新,緊接著執(zhí)行查詢--查詢結果為更新前的結果。

2.執(zhí)行自定義update方法結束后執(zhí)行查詢查出結果依然為update前的結果集

解決問題所在:

自定義update并未清空實體緩存。注解@Modifying加參數eg:@Modifying(clearAutomatically = true)

jpa更新問題記錄使用jpa 去更新:

@Modifying(clearAutomatically = true),@Transactional

它說的是可以清除底層持久化上下文,就是entityManager這個類,我們知道jpa底層實現會有二級緩存,也就是在更新完數據庫后,如果后面去用這個對象,你再去查這個對象,這個對象是在一級緩存,但是并沒有跟數據庫同步,這個時候用clearAutomatically=true,就會刷新hibernate的一級緩存了, 不然你在同一接口中,更新一個對象,接著查詢這個對象,那么你查出來的這個對象還是之前的沒有更新之前的狀態(tài)。

注意:

如果說在同個事務方法中,如果有多個更新操作,使用@Modifying(clearAutomatically = true),就會產生在此之前的update操作全部失效,因為把jpa的一級緩存都刷新掉了

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 麻江县| 即墨市| 武功县| 抚州市| 名山县| 仙游县| 八宿县| 太保市| 宝坻区| 耿马| 桐乡市| 洛宁县| 淄博市| 呼伦贝尔市| 平陆县| 扎囊县| 景谷| 泊头市| 镇康县| 佛山市| 双牌县| 玉屏| 饶平县| 安陆市| 甘孜| 怀化市| 乌拉特后旗| 壤塘县| 永兴县| 绥芬河市| 通山县| 陵川县| 新闻| 彭州市| 扎鲁特旗| 秭归县| 繁峙县| 淮阳县| 开阳县| 古浪县| 原平市|