美文网首页
SpringBoot+JPA中使用set方法时自动更新数据库问题

SpringBoot+JPA中使用set方法时自动更新数据库问题

作者: 郝晶 | 来源:发表于2021-03-09 17:54 被阅读0次

出现原因:

Springboot 默认集成hibernate ,spring data jpa可以看做是在hibernate上做了一层封装,为了减少数据层操作的工作量。

一般数据库操作find之后,数据就进入托管状态,这个时候任何属性的改变都会记录到数据库中。

解决方案:

1)如果想要set不保存就需要让对象处于游离状态

如何让数据处于游离状态,最好的方法是使用evict:将某个对象清除缓存session。  session.evict(Object obj)即可

2)或者新建一个对象(瞬时状态),将查询出来的对象内容赋给新对象,对新对象进行操作

spring data jpa 相关知识点:

1)Spring Data Jpa通过解析方法名称来创建查询

2)不支持原生查询,进行动态排序,但是可以使用countQuery技术查询,使用原生查询进行分页

3)审计Auditing (自动添加创建时间,更新时间,创建人等)   实体类上需要添加(@EntityListerners(AudingEntityListerner.class))

4)由于springboot 默认继承hibernate 所以只需要引入jpa和数据库连接库即可、

相关文章

网友评论

      本文标题:SpringBoot+JPA中使用set方法时自动更新数据库问题

      本文链接:https://www.haomeiwen.com/subject/avebqltx.html