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

Posted xjz1842

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot使用jpa的@Modify的clearAutomatically=true的作用相关的知识,希望对你有一定的参考价值。

    开始使用jpa的,用到了更新数据库表。下面是一个例子 ,并不知道clearAutomatically=true的作用,只知道加了没有加都可以用,然后加了,

          点击进入@Modify这个注解,可以看到:

    它说的是可以清除底层持久化上下文,就是entityManager这个类,我们知道jpa底层实现会有二级缓存,也就是在更新完数据库后,如果后面去用这个对象,你再去查这个对象,这个对象是在一级缓存,但是并没有跟数据库同步,这个时候用clearAutomatically=true,就会刷新hibernate的一级缓存了, 不然你在同一接口中,更新一个对象,接着查询这个对象,那么你查出来的这个对象还是之前的没有更新之前的状态。

          鉴于有人还是不明白, 为了说明这个情况,我还是截图说明下:

           不加 clearAutomatically=true,是这样的 ,查询更新的数据前后的User信息,没有改变。

         

            加了 clearAutomatically=true之后,是这样的 ,查询更新的数据前后的User信息,更新了用户信息。

  

                更新后,再查询用户信息,就是最新的数据。

              

 

以上是关于spring boot使用jpa的@Modify的clearAutomatically=true的作用的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot(17)——使用Spring Data JPA

spring-boot与spring-data-JPA的简单集成使用

Spring Boot:在Spring Boot中使用Mysql和JPA

Spring------Spring boot data jpa的使用方法

Spring boot JPA

Spring boot JPA