天天看點

hibernate Session的flush、clear、close的使用

flush-強制送出重新整理session clear--清除session evict(Obj)将對象執行個體從session緩存清除 session.flush() 不是必須調用的 session.close()是必須調用的 session.clear()寫在flush後面 解釋session.flush()的調用牽扯到事務,首先我們知道在執行事務之前都會将AutoCommit設定為false【手動送出方式,因為預設是true自動送出的】 當AutoCommit為false時 我們執行完事務就要調用到session.flush();session.clear();一切處理完後我們要close掉目前的這個session但是當我們不做事務操作的時候 我們就沒必要去調用session.flush()和session.clear()。直接session.close()就OK 因為這時close會預設調用一次session.flush()。如果使用了ThreadLocal那麼就要在close方法裡處理一下ThreadLocal。session.flush()的作用是将資料庫與緩存中的資料同步 當session.clear()後才會引起緩存資料變化。