您的位置:首页 > 其它

Hibernate并没有调用update却自动更新,解决方案

2017-05-29 00:00 525 查看
问题描述:

查询处数据后,更改了POJO的属性,不去调用update()也能自动更新到数据库

hibernate在每个session里都会做些处理,比如把查询过的对象缓存起来什么,这个时候这些对象的实例是和数据库保持关联的,hibernate会记录session生命周期内所有缓存对象的操作过程,最后都会反映到数据库去,也就是所谓的托管状态(此处有误,应该是持久化状态),所以才会有自动更新这种问题。只要每次都把查询到的对象用evict(或clear)清除(记得,是每次),那么就不会有托管状态的entity,也就不会有自动更新,但这不会影响(应该)update(或saveOrUpdate)操作,evict只是清楚实例与数据库的关联而已,不是清楚实例本身。

参考链接:

http://blog.csdn.net/ideality_hunter/article/details/52024123

Hibernate中对象的三种状态及相互转化

举例理解Hibernate的三种状态

Hibernate之缓存详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Hibernate