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

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

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

    Atea - Hero's Grave

    面向對象,開源,框架,敏捷,云計算,NoSQL,商業智能,編程思想。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      40 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
    Hibernate Session獲取方法大致有兩種:
    方法1. SessionFactory.openSession();
    方法2. SessionFactory.getCurrentSession();
    以前自己寫代碼都是用方法1取session。今天學會了方法2,以后就可以用它來提高效率了:

    1.在xml或properties文件里設置current_session_context_class,例如:
    hibernate.current_session_context_class=thread
    這里用的是基于ThreadLocal的ThreadLocalSessionContext類。Hibernate還提供了其他的類,近期計劃學習一下JTA。
    2.然后就可以取Session了:
    Session sessionOne = factory.getCurrentSession();
    之后當我對Session操作的時候拋出了"*** is not valid without active transaction"的異常,查資料才發現用方法2取得的Session必須和Transaction配套使用,即使只是進行search操作:
    sessionOne.beginTransaction();
    //CRUD..

    最后貼一段代碼:
    @Test    
    public void testSession() throws Exception{      
            
        Session sessionOne 
    = factory.getCurrentSession();        
        sessionOne.beginTransaction();
    //important.
        System.out.println("session1: " + sessionOne.getFlushMode() );
            
        Session sessionTwo 
    = factory.getCurrentSession();
        sessionTwo.beginTransaction();
        System.out.println(
    "session2: " + sessionTwo.getFlushMode() );
            
        sessionOne.setFlushMode(FlushMode.ALWAYS);
        System.out.println(
    "session1: " + sessionOne.getFlushMode() );
        System.out.println(
    "session2: " + sessionTwo.getFlushMode() );
            
        
    //notice!
        System.out.println("sessionOne equals sessionTwo? " + (sessionOne.equals(sessionTwo)) );                
            
        
    //need not.
        
    //sessionOne.close();
        
    //sessionTwo.close();

        //2009/02/09 更新
        //在用getCurrentSession獲得session的時候,如果transaction.commit()的話,session會自動被關閉。
        //如果沒有commit的話,還是需要手動關閉才行!


    }
    Print out:
    session1: AUTO
    session2: AUTO
    session1: ALWAYS
    session2: ALWAYS
    sessionOne equals sessionTwo? false
    posted on 2008-07-28 16:57 Atea 閱讀(3469) 評論(0)  編輯  收藏 所屬分類: Hibernate
    主站蜘蛛池模板: 亚洲人成色77777在线观看| 亚洲国产成人久久精品app| 老司机午夜精品视频在线观看免费| 成人免费视频69| 亚洲AV无码一区二区三区人| 国产成人精品免费视频动漫| 亚洲成人免费网址| 午夜性色一区二区三区免费不卡视频| 亚洲黑人嫩小videos| 一个人看www在线高清免费看| 亚洲国产高清美女在线观看| 91在线视频免费看| 亚洲风情亚Aⅴ在线发布| 国产在线19禁免费观看国产| 免费福利资源站在线视频| 亚洲色偷偷狠狠综合网| 久久成人a毛片免费观看网站| 亚洲成a人片77777老司机| 在线观看www日本免费网站| 99久久国产亚洲综合精品| 免费国产成人午夜电影| 国产A∨免费精品视频| 亚洲视频免费在线播放| 欧洲黑大粗无码免费| 色多多免费视频观看区一区| 亚洲香蕉成人AV网站在线观看 | 亚洲国产精品日韩在线观看| 天天摸天天操免费播放小视频| 国产AV无码专区亚洲AV蜜芽| 浮力影院亚洲国产第一页| 91大神免费观看| 无码亚洲成a人在线观看| 亚洲日韩VA无码中文字幕 | 亚洲国产精品久久久久久| 免费v片在线观看视频网站| 国产亚洲精彩视频| 亚洲AV无码不卡在线播放| 成年女人免费v片| 色www永久免费| 亚洲av日韩av永久无码电影| 亚洲精品乱码久久久久久|