<2008年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計(jì)

          • 隨筆 - 27
          • 文章 - 0
          • 評(píng)論 - 29
          • 引用 - 0

          留言簿(3)

          隨筆分類(lèi)

          關(guān)注Blog

          最新評(píng)論

          閱讀排行榜

          [Original]Hibernate持久與游離

                  在Hbibernate中有自己的一套機(jī)制:FlushMode,它控制著持久化對(duì)象與數(shù)據(jù)庫(kù)的關(guān)系。FlushMode有四種狀態(tài):NERVER、AUTO、COMMIT和ALWAYS。默認(rèn)值為AUTO。Spring中使用Hibernate時(shí),會(huì)將FlushMode初始化為AUTO,不過(guò)在使用OpenSessionInViewFilter(Spring有自己的一個(gè)transcation,不過(guò)它只是作用在service層,如果想使持久化對(duì)象保留到view層,那么啟用這個(gè)過(guò)濾器之后就可以了)過(guò)濾器之后,Spring會(huì)將FlushMode設(shè)置為NERVER(表示持久化對(duì)象不在于數(shù)據(jù)庫(kù)中數(shù)據(jù)實(shí)時(shí)關(guān)聯(lián))。不知道大家在工程中是否用到了spring提供的事務(wù),在用到spring提供的HibernateTranscationManager管理事務(wù)時(shí)。當(dāng)調(diào)用的方法位于該管理器之下時(shí),spring會(huì)臨時(shí)的將FlushMode修改為AUTO狀態(tài),這樣如果你在view層有一個(gè)持久化對(duì)象,并且修改了這個(gè)持久化對(duì)象的狀態(tài),spring會(huì)自動(dòng)將這個(gè)持久化對(duì)象的狀態(tài)更新到數(shù)據(jù)庫(kù)中去。這樣可能會(huì)帶來(lái)困惑:明明沒(méi)有更新數(shù)據(jù)庫(kù),怎么數(shù)據(jù)庫(kù)中的值發(fā)生改變了呢?其實(shí)這也是持久層的意義所在:持久是將數(shù)據(jù)保存在持久層中的對(duì)象上,并使對(duì)象與數(shù)據(jù)是一致的,如果持久化對(duì)象狀態(tài)發(fā)生改變,成為了游離態(tài),類(lèi)似用jdbc取出Object之后close了connection,這樣對(duì)象與數(shù)據(jù)庫(kù)就脫離了,也就是游離。歡迎大家來(lái)拍磚^_^

          posted on 2008-01-09 13:28 牛浪de流 閱讀(391) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Framework


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 特克斯县| 鱼台县| 安多县| 澄迈县| 大方县| 建阳市| 新津县| 方城县| 曲麻莱县| 开化县| 崇信县| 建阳市| 商水县| 易门县| 安多县| 息烽县| 汉阴县| 榆社县| 徐汇区| 肇州县| 霍邱县| 依兰县| 金平| 阿瓦提县| 桦川县| 玛多县| 屯昌县| 兰溪市| 洪洞县| 伊宁市| 钟山县| 化州市| 繁昌县| 刚察县| 三明市| 凤冈县| 买车| 威海市| 德江县| 丰宁| 漳浦县|