成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate之Session刷出(flush)

開發 后端
每間隔一段時間,Session會執行一些必需的SQL語句來把內存中的對象的狀態同步到JDBC連接中。這個過程被稱為Hibernate Session刷出(flush),默認會在下面的時間點執行。

什么是Hibernate Session刷出(flush)?也許大家對此不夠了解,但相信你看完本文一定有很大的收益。

每間隔一段時間,Session會執行一些必需的SQL語句來把內存中的對象的狀態同步到JDBC連接中。這個過程被稱為Hibernate Session刷出(flush),默認會在下面的時間點執行:

◆在某些查詢執行之前

◆在調用org.hibernate.Transaction.commit()的時候

◆在調用Session.flush()的時候

◆涉及的SQL語句會按照下面的順序發出執行:

◆所有對實體進行插入的語句,其順序按照對象執行Session.save()的時間順序

◆所有對實體進行更新的語句

◆所有進行集合刪除的語句

◆所有對集合元素進行刪除,更新或者插入的語句

◆所有進行集合插入的語句

◆所有對實體進行刪除的語句,其順序按照對象執行Session.delete()的時間順序

(有一個例外是,如果對象使用native方式來生成ID(持久化標識)的話,它們一執行save就會被插入。)

除非你明確地發出了flush()指令,關于Session何時會執行這些JDBC調用是完全無法保證的,只能保證它們執行的前后順序。 當然,Hibernate保證,Query.list(..)絕對不會返回已經失效的數據,也不會返回錯誤數據。

也可以改變默認的設置,來讓Hibernate Session刷出(flush)操作發生的不那么頻繁。 FlushMode類定義了三種不同的方式。 僅在提交時刷出(僅當Hibernate的Transaction API被使用時有效), 按照剛才說的方式刷出, 以及除非明確使用flush()否則從不刷出。 最后一種模式對于那些需要長時間保持Session為打開或者斷線狀態的長時間運行的工作單元很有用。

  1. sess = sf.openSession();  
  2. Transaction tx = sess.beginTransaction();  
  3. sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale state  
  4.  
  5. Cat izi = (Cat) sess.load(Cat.class, id);  
  6. izi.setName(iznizi);  
  7.  
  8. // might return stale data  
  9. sess.find("from Cat as cat left outer join cat.kittens kitten");  
  10.  
  11. // change to izi is not flushed!  
  12. ...  
  13. tx.commit(); // flush occurs  
  14. sess.close(); 

Hibernate Session刷出(flush)期間,可能會拋出異常。(例如一個DML操作違反了約束) 異常處理涉及到對Hibernate事務性行為的理解,這里在事務和并發中有具體的介紹,這里我們就不加以介紹了。

責任編輯:仲衡 來源: javanb
相關推薦

2009-09-25 16:08:12

Hibernate f

2009-09-23 16:30:01

Hibernate f

2012-06-02 00:55:44

HibernateflushJava

2009-09-29 16:04:29

Hibernate S

2009-09-24 17:24:20

Hibernate S

2009-09-23 17:18:16

Hibernate S

2009-09-25 13:51:13

Hibernate S

2009-09-25 09:46:03

Hibernate s

2009-09-25 10:53:40

Hibernate S

2009-09-22 10:09:21

Hibernate S

2009-09-23 17:03:08

Hibernate S

2009-06-26 16:34:50

delete()方法Hibernate S

2009-06-26 16:33:09

saveOrUpdatHibernate

2009-06-12 16:00:13

Session方法Hibernate

2009-09-27 14:53:38

Hibernate S

2009-09-23 11:37:31

Hibernate S

2009-06-30 16:46:45

Criteria進階查

2009-06-18 13:42:48

Hibernate s

2009-06-18 12:59:39

Criteria Qu深入淺出Hiberna

2009-06-30 16:44:10

Criteria基本查
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人av一区 | 91av免费看 | 99久久婷婷| 欧美日韩亚洲国产 | 精品亚洲一区二区三区 | 久久国产一区 | 999在线精品 | 亚洲天堂999 | 91精品久久久久久久久中文字幕 | 91精品在线播放 | 综合二区| 欧美一级在线视频 | 欧美一级毛片免费观看 | 蜜桃在线视频 | 九九热在线观看 | 国产在线www | 精品1区2区 | 国产精品一区二区欧美黑人喷潮水 | 国产99视频精品免视看9 | 精品日韩| 麻豆一区一区三区四区 | 日韩高清一区 | 国产美女福利在线观看 | 久久综合一区 | 成年人免费看 | 狠狠干在线 | 久久国产一区 | 国产成人精品一区二区 | 三级国产三级在线 | 精品欧美一区二区三区久久久 | 麻豆视频在线免费观看 | 欧美高清视频一区 | 99精品国产一区二区青青牛奶 | 久久久不卡网国产精品一区 | 精品一区二区三区中文字幕 | 亚洲国产成人在线观看 | 99视频在线 | 日韩欧美在线不卡 | 欧美成人在线网站 | 欧美极品在线 | 成年人免费网站 |