hibernate flush 緩存

•flush:Session按照緩存中對象的屬性變化來同步更新數據庫
•默認情況下 Session在以下時間點刷新緩存:
–顯式調用Session flush()方法
–當應用程序調用Transaction commit()方法的時,該方法先flush,然後在向數據庫提交事務
–當應用程序執行一些查詢(HQL,Criteria)操作時,如果緩存中持久化對象的屬性已經發生了變化,會先flush緩存,以保證查詢結果能夠反映持久化對象的最新狀態
•flush 緩存的例外情況:如果對象使用native生成器生成OID,那麼當調用Session的save()方法保存對象時,會立即執行向數據庫插入該實體的insert語句.
•commit() 和flush()方法的區別:flush執行一系列sql語句,但不提交事務;commit方法先調用flush()方法,然後提交事務.意味着提交事務意味着對數據庫操作永久保存下來。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章