<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kapok

    垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks

    準備這幾天如果有空整理一下,先放在這里。
    要正確理解OpenSessionInView必須具備以下幾個知識點:
    1.
    servlet的多線程模型。
    2.
    Filter的工作原理。
    3.
    ThreadLocal的使用。
    4.
    Hibernate的Session以及Connection的管理。
    5.
    Lazy Load
    6.
    Hibernate的FlushMode
    7.
    Spring的處理分兩種:
          7.1 One session per request   
          7.2 One new session per operation(這里的operation是指一次業務操作,例如如果我們的一次請求調用了某個業務方法,而這個方法里面有兩個與Session相關的操作,則每一個操作都會新開一個Session,但是使用結束以后并不關閉,而是注冊到ThreadLocal的deffered close 的變量里面,等到open session in view filter執行完畢的最后進行一起close, 這樣有個問題就是一個request可能會啟動很多Session,而且這些session之間的一級緩存不能共享,另外Hibernate限制不能在一個session里面load一個po卻在這個session沒有關閉的情況下面在另外一個session里面save或者update,也就是說同一個po實例同一時間只能跟一個session發生關聯,這樣導致的結果是如果在上面假設的兩個業務方法中的第一個進行load,而在第二個中對load出來的進行修改,鐵定會報錯。)

       另外如果是One session per request  (官方說法是叫SingleSession Mode), 會看到在open session in view filter中進行了FlushMode.setMode(Never),也就是從來不進行flush, 想當然地就是只能進行read-only的操作。但是沒有關系,回到HibernateTemplate的模板方法以及SessionFactoryUtil的getSession方法,可以看到我們的業務方法發出的每個請求都會試圖先取到一個session(取session的策略與上面描述的有關),在取Session的過程中會判斷當前的操作是不是配制成read-only的(同時也會注冊transaction sync manager,有spring和Jta兩種),如果不是read-only并且當前的flush mode  是 never的話,會把flush mode改成auto,因此就可以進行讀寫操作了。


         spring的callback使得所有的操作最后基本歸由HibernateTemplate當中的excute方法進行處理,對session的管控也是在這里集中進行,如果我們自己控制session,有兩種方法,一種是我們也寫callback,讓spring幫我們擦屁股,另外一種是直接調用HibernateTemplate的getSession方法,但是需要我們對session的生命周期以及關閉作仔細的控制,具體的控制策略可以參考spring地實現。




    posted on 2005-05-31 09:16 笨笨 閱讀(908) 評論(0)  編輯  收藏 所屬分類: J2EEHibernateAndSpringALL
    主站蜘蛛池模板: 久久久久久亚洲精品不卡| 少妇亚洲免费精品| 亚洲男人的天堂在线播放| GOGOGO高清免费看韩国| 在线观看亚洲天天一三视| 男人免费视频一区二区在线观看| 永久免费看bbb| 亚洲av日韩精品久久久久久a| 成人超污免费网站在线看| 亚洲午夜成人精品无码色欲| 欧美a级成人网站免费| 亚洲国产激情在线一区| 91免费精品国自产拍在线不卡| 亚洲一区二区三区高清视频| 成年女人看片免费视频播放器 | 亚洲精品成人网站在线观看| 狠狠躁狠狠爱免费视频无码| 国产亚洲一区二区三区在线| 在线观看片免费人成视频无码| 亚洲免费在线播放| AV免费网址在线观看| 国产亚洲成在线播放va| 久久久久无码专区亚洲av| 国产无遮挡无码视频免费软件| 亚洲综合婷婷久久| 成人免费毛片内射美女APP| 免费看一级毛片在线观看精品视频| 久久久久国产亚洲AV麻豆| 亚洲午夜免费视频| 亚洲а∨天堂久久精品9966| 国产yw855.c免费视频| 黄色网址免费在线观看| 亚洲AV无码乱码在线观看裸奔| 国产妇乱子伦视频免费| 日本亚洲欧美色视频在线播放 | 亚洲狠狠婷婷综合久久久久| 91福利免费视频| 亚洲成a人无码亚洲成www牛牛| 亚洲一区无码精品色| 黄色免费网站网址| 精品在线免费视频|