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)
相關文章
相關標籤/搜索