spring boot使用jpa的@Modify的clearAutomatically=true的作用
2017-07-21 14:14
483 查看
开始使用jpa的,用到了更新数据库表。下面是一个例子 ,并不知道clearAutomatically=true的作用,只知道加了没有加都可以用,然后加了,
点击进入@Modify这个注解,可以看到:
它说的是可以清除底层持久化上下文,就是entityManager这个类,我们知道jpa底层实现会有二级缓存,也就是在更新完数据库后,如果后面去用这个对象,你再去查这个对象,这个对象是在一级缓存,但是并没有跟数据库同步,这个时候用clearAutomatically=true,就会刷新hibernate的一级缓存了, 不然你在同一接口中,更新一个对象,接着查询这个对象,那么你查出来的这个对象还是之前的没有更新之前的状态。
鉴于有人还是不明白, 为了说明这个情况,我还是截图说明下:
不加 clearAutomatically=true,是这样的 ,查询更新的数据前后的User信息,没有改变。
加了 clearAutomatically=true之后,是这样的 ,查询更新的数据前后的User信息,更新了用户信息。
更新后,再查询用户信息,就是最新的数据。
点击进入@Modify这个注解,可以看到:
它说的是可以清除底层持久化上下文,就是entityManager这个类,我们知道jpa底层实现会有二级缓存,也就是在更新完数据库后,如果后面去用这个对象,你再去查这个对象,这个对象是在一级缓存,但是并没有跟数据库同步,这个时候用clearAutomatically=true,就会刷新hibernate的一级缓存了, 不然你在同一接口中,更新一个对象,接着查询这个对象,那么你查出来的这个对象还是之前的没有更新之前的状态。
鉴于有人还是不明白, 为了说明这个情况,我还是截图说明下:
不加 clearAutomatically=true,是这样的 ,查询更新的数据前后的User信息,没有改变。
加了 clearAutomatically=true之后,是这样的 ,查询更新的数据前后的User信息,更新了用户信息。
更新后,再查询用户信息,就是最新的数据。
相关文章推荐
- spring boot使用jpa的@Modify的clearAutomatically=true的作用
- SpringCloud SpringBoot mybatis 分布式微服务(十一)Spring Boot多数据源配置与使用(Spring-data-jpa支持)
- 在Spring Boot中使用Spring-data-jpa实现分页查询
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- spring boot项目中使用jpa的一个未解之谜
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- Spring-boot中使用Spring-data-jpa操作DB
- Spring Boot中使用Spring-data-jpa让数据访问更简单、更优雅
- springboot整合jpa的使用
- Spring Boot使用Spring JPA操作
- spring boot(五):spring data jpa的使用
- 使用 SpringBoot 之 JPA 整合 Redis 实现缓存
- 在Spring Boot中使用Spring-data-jpa实现分页查询
- SpringBoot开发详解(九) -- 使用JPA访问数据库上篇
- SpringBoot JPA 多数据源的使用
- 基于Spring Boot,使用JPA动态调用Sql查询数据
- Spring boot学习之spring-data-jpa的使用(一)
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- SpringBoot 07 之JPA使用
- spring-boot-starter-data-jpa 中的 Eaxmple 如何使用