出现原因:
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和数据库连接库即可、
网友评论