<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
    主站蜘蛛池模板: 少妇太爽了在线观看免费视频| 污视频网站免费观看| 亚洲国产精品免费视频| 亚洲精品无码久久久久| 久久99精品免费一区二区| 亚洲午夜福利精品久久| 一区二区视频免费观看| 亚洲综合另类小说色区色噜噜| 美女裸免费观看网站| 亚洲日韩在线第一页| 十八禁的黄污污免费网站| 亚洲一区精品伊人久久伊人| 国产三级在线免费观看| 亚洲精品高清无码视频| 99在线观看视频免费| tom影院亚洲国产一区二区| 无码一区二区三区AV免费| 亚洲第一第二第三第四第五第六| 国产特级淫片免费看| 三级黄色片免费看| 亚洲精选在线观看| 无人影院手机版在线观看免费 | 在线免费观看亚洲| 亚洲午夜久久久久久尤物| 午夜一级免费视频| 一级做a爰片久久毛片免费陪| 亚洲天堂中文字幕在线| 久久综合国产乱子伦精品免费| 亚洲av无码一区二区三区天堂古代| 曰皮全部过程视频免费国产30分钟 | 91黑丝国产线观看免费| 国产亚洲蜜芽精品久久| 中国亚洲女人69内射少妇| 在线观看免费中文视频| 久久精品亚洲日本波多野结衣| 亚洲精品一级无码鲁丝片| 91精品国产免费久久国语蜜臀 | 成人午夜免费视频| 亚洲无删减国产精品一区| 免费毛片网站在线观看| 叮咚影视在线观看免费完整版|