<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级毛片无码专区| 亚洲国产AV无码专区亚洲AV| 中文精品人人永久免费| 亚洲中文字幕久久精品无码APP | 亚洲婷婷综合色高清在线| 一级毛片免费观看| 亚洲白色白色永久观看| 中字幕视频在线永久在线观看免费| 亚洲毛片免费视频| 大学生高清一级毛片免费| 亚洲国产成人精品无码区花野真一| 成年女人看片免费视频播放器| WWW亚洲色大成网络.COM| 免费人成视频在线观看不卡| 丰满少妇作爱视频免费观看| 久久精品国产亚洲沈樵| 精品一区二区三区免费毛片爱| 亚洲AV无码乱码在线观看代蜜桃 | 亚洲精品亚洲人成在线播放| 在线观看成人免费| 一级毛片aaaaaa视频免费看| 亚洲爆乳无码一区二区三区| 91香蕉成人免费网站| 亚洲精品美女久久久久久久| 亚洲精品国产日韩无码AV永久免费网| 在线观看肉片AV网站免费| 亚洲日韩在线视频| 免费国产综合视频在线看| 99re6在线精品免费观看| 亚洲天堂电影在线观看| 国产国产成年年人免费看片| a级成人毛片免费视频高清| 亚洲国产成人精品无码区在线秒播 | 最近中文字幕大全中文字幕免费| 亚洲天堂2016| 亚洲中文字幕无码久久2017| 美女被免费喷白浆视频| 有码人妻在线免费看片| 亚洲视频一区二区在线观看|