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

Hibernate之Session刷出(flush)

開(kāi)發(fā) 后端
每間隔一段時(shí)間,Session會(huì)執(zhí)行一些必需的SQL語(yǔ)句來(lái)把內(nèi)存中的對(duì)象的狀態(tài)同步到JDBC連接中。這個(gè)過(guò)程被稱(chēng)為Hibernate Session刷出(flush),默認(rèn)會(huì)在下面的時(shí)間點(diǎn)執(zhí)行。

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

每間隔一段時(shí)間,Session會(huì)執(zhí)行一些必需的SQL語(yǔ)句來(lái)把內(nèi)存中的對(duì)象的狀態(tài)同步到JDBC連接中。這個(gè)過(guò)程被稱(chēng)為Hibernate Session刷出(flush),默認(rèn)會(huì)在下面的時(shí)間點(diǎn)執(zhí)行:

◆在某些查詢(xún)執(zhí)行之前

◆在調(diào)用org.hibernate.Transaction.commit()的時(shí)候

◆在調(diào)用Session.flush()的時(shí)候

◆涉及的SQL語(yǔ)句會(huì)按照下面的順序發(fā)出執(zhí)行:

◆所有對(duì)實(shí)體進(jìn)行插入的語(yǔ)句,其順序按照對(duì)象執(zhí)行Session.save()的時(shí)間順序

◆所有對(duì)實(shí)體進(jìn)行更新的語(yǔ)句

◆所有進(jìn)行集合刪除的語(yǔ)句

◆所有對(duì)集合元素進(jìn)行刪除,更新或者插入的語(yǔ)句

◆所有進(jìn)行集合插入的語(yǔ)句

◆所有對(duì)實(shí)體進(jìn)行刪除的語(yǔ)句,其順序按照對(duì)象執(zhí)行Session.delete()的時(shí)間順序

(有一個(gè)例外是,如果對(duì)象使用native方式來(lái)生成ID(持久化標(biāo)識(shí))的話,它們一執(zhí)行save就會(huì)被插入。)

除非你明確地發(fā)出了flush()指令,關(guān)于Session何時(shí)會(huì)執(zhí)行這些JDBC調(diào)用是完全無(wú)法保證的,只能保證它們執(zhí)行的前后順序。 當(dāng)然,Hibernate保證,Query.list(..)絕對(duì)不會(huì)返回已經(jīng)失效的數(shù)據(jù),也不會(huì)返回錯(cuò)誤數(shù)據(jù)。

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

  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)期間,可能會(huì)拋出異常。(例如一個(gè)DML操作違反了約束) 異常處理涉及到對(duì)Hibernate事務(wù)性行為的理解,這里在事務(wù)和并發(fā)中有具體的介紹,這里我們就不加以介紹了。

責(zé)任編輯:仲衡 來(lái)源: javanb
相關(guān)推薦

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-18 12:59:39

Criteria Qu深入淺出Hiberna

2009-06-30 16:46:45

Criteria進(jìn)階查

2009-06-30 16:44:10

Criteria基本查

2009-09-25 11:23:13

Hibernate S
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人免费一区二区三区视频网站 | 一区二区三区国产好的精 | 91精品国产91久久久久久吃药 | 欧美亚洲国产一区二区三区 | 国产精品久久久久久久免费大片 | 亚洲成人精品 | 精品1区 | 免费激情| 亚洲视频在线播放 | 国产高清在线观看 | 97伦理电影 | 国产免费福利在线 | 国产91一区二区三区 | 国产激情精品视频 | 亚洲一区二区精品视频 | 欧美激情欧美激情在线五月 | 又黄又爽的网站 | av片免费 | 欧美一级高潮片免费的 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 国产韩国精品一区二区三区 | 看片国产 | 99热精品国产 | 亚洲成av人片在线观看 | 在线视频一区二区 | 午夜免费视频观看 | 日韩视频精品在线 | 国产精品海角社区在线观看 | 国产精品美女久久久av超清 | 亚洲视频一区在线观看 | 国产成人免费视频网站视频社区 | 黄色网址免费在线观看 | 91中文在线观看 | 午夜精品一区二区三区免费视频 | 国产高清在线观看 | 精品久久久久国产 | 久久久久久久一区二区 | 天天色天天 | 日韩欧美亚洲 | 激情五月综合网 | 精品99久久久久久 |