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

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

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

    Atea - Hero's Grave

    面向?qū)ο螅_源,框架,敏捷,云計算,NoSQL,商業(yè)智能,編程思想。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      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"的異常,查資料才發(fā)現(xiàn)用方法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
    主站蜘蛛池模板: 无遮免费网站在线入口| 亚洲aⅴ无码专区在线观看| 国产精品极品美女免费观看| 亚洲一级片内射网站在线观看| 久久亚洲国产成人精品无码区| 免费精品国自产拍在线播放| 一二三四影视在线看片免费| 亚洲国产午夜精品理论片| 美国免费高清一级毛片| 免费中文字幕不卡视频| 亚洲国产日韩在线| 少妇高潮太爽了在线观看免费| 亚洲中文字幕无码一去台湾| 色www永久免费网站| 国产l精品国产亚洲区在线观看| 国产AV旡码专区亚洲AV苍井空| 免费一级毛片无毒不卡| 亚洲日本精品一区二区| 中文字幕免费在线| 亚洲熟女综合一区二区三区| 免费a级毛片网站| 和老外3p爽粗大免费视频| 亚洲AV无码欧洲AV无码网站| 久久免费看黄a级毛片 | 2019中文字幕在线电影免费 | 亚洲精品乱码久久久久久不卡| h片在线播放免费高清 | 91视频免费网站| 亚洲第一二三四区| 国产资源免费观看| 久久九九全国免费| 亚洲国产成人久久综合| 99久久综合国产精品免费| 小说专区亚洲春色校园| 日本免费v片一二三区| 国产特黄一级一片免费| 亚洲国产成人无码av在线播放| 日韩免费观看一级毛片看看| a一级毛片免费高清在线| 亚洲乱码在线播放| 亚洲精品国产精品乱码不卞|