spring boot使用jpa的@Modify的clearAutomatically=true的作用


    開始使用jpa的,用到了更新數據庫表。下面是一個例子 ,並不知道clearAutomatically=true的作用,只知道加了沒有加都可以用,然后加了,

          點擊進入@Modify這個注解,可以看到:

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

          鑒於有人還是不明白, 為了說明這個情況,我還是截圖說明下:

           不加 clearAutomatically=true,是這樣的 ,查詢更新的數據前后的User信息,沒有改變。

         

            加了 clearAutomatically=true之后,是這樣的 ,查詢更新的數據前后的User信息,更新了用戶信息。

  

                更新后,再查詢用戶信息,就是最新的數據。

              

 


免責聲明!

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



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