Hibernate不调用update却自动更新

案例:数据库

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

cus.setXXXsession

cus .setXXXthis

不调用update也写入数据库hibernate

缘由:对象

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