码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate不调用update却自动更新

时间:2014-11-04 17:01:58      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:io   ar   sp   数据   div   on   问题   bs   as   

案例:

TInfCustomer cus = (TInfCustomer) this.baseDao.getOne(helper);

cus.setXXX

cus .setXXX

不调用update也写入数据库

原因:

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

Hibernate不调用update却自动更新

标签:io   ar   sp   数据   div   on   问题   bs   as   

原文地址:http://www.cnblogs.com/yangy608/p/4073941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!