案例:數據庫
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)