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

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

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

    posts - 73,  comments - 55,  trackbacks - 0

    Spring+Hibernate中,? 集合映射如果使用lazy="true", 當PO傳到View層時, 出現未初始化session已關閉的錯誤,只能在dao先初始化

    parent.getChilds().size();

    Spring提供Open Session In View來解決這個問題, 有兩種方式
    1. Interceptor
    ??? <!--?===========?OpenSession?In?View?pattern?==============-->
    ????
    <bean?id="openSessionInViewInterceptor"
    ??????????class
    ="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
    ????????
    <property?name="sessionFactory"?ref="sessionFactory"/>
    ????
    </bean>

    ????
    <bean?id="urlMapping"?class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    ????????
    <property?name="interceptors"?ref="openSessionInViewInterceptor"/>
    ????????
    <property?name="mappings">
    ????????????
    <props>
    ??????????? ......
    ????????????
    </props>
    ????????
    </property>
    ????
    </bean>
    2. Filter
    <web-app>
    ?
    <filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>
    org.springframework.orm.hibernate.support.OpenSessionInViewFilter
    </filter-class>
    </filter>
    ?
    <filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>*.do</url-pattern>
    </filter-mapping>

    </web-app>

    說明: 個人更喜歡用Interceptor方式, filter是在web.xml中定義
    有了OpenSessionInView,并不是一切就ok了。簡單的crud可以,但對于復雜業務邏輯就要想點法子。

    OSIV默認是request per session的, 所以即使沒有顯式update(po),Hibernate也會幫你保存的,dao的業務判斷就無效,還好有evict()可用。
    update code
    // Controller
    public?ModelAndView?update()?{
    ????p?
    =?dao.getVo(id);
    ????bindObject(request);
    ????dao.update(p);
    }

    // Dao
    public?Object?getVo(id)?{
    ????p?
    =?getHibernateTemplate().get(clazz,?id);
    ????p.getChilds().size();
    ????getHibernateTemplate().evict(p);
    ????
    return?p;
    }

    public?void?update(p)?{
    ????oldP?
    =?getVo(id);
    ????
    //?++--(oldP);
    ????getHibernateTemplate().update(p);
    ????
    //?++--(p);
    }
    posted on 2006-08-15 17:19 保爾任 閱讀(977) 評論(1)  編輯  收藏

    FeedBack:
    # re: spring的OpenSessionInView用法
    2007-01-10 13:22 | 前前
    そうか  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产做床爱无遮挡免费视频| 国产91色综合久久免费| 免费看国产曰批40分钟| 亚洲AV无码之国产精品| 最近最新的免费中文字幕| 亚洲色成人四虎在线观看| 亚洲人成网站免费播放| 99久久婷婷国产综合亚洲| 日本牲交大片免费观看| 国产精品无码亚洲一区二区三区| 国产三级免费观看| 一级一片免费视频播放| 中文字幕专区在线亚洲| 久草免费福利资源站| 亚洲综合久久综合激情久久| 免费黄色网址网站| 亚洲欧美日韩综合久久久久| 国产成人免费片在线视频观看| 免费大片av手机看片高清| 中文亚洲AV片不卡在线观看| 国产99视频精品免费专区| 亚洲一本之道高清乱码| 日韩免费福利视频| 波霸在线精品视频免费观看| 亚洲av无码国产精品夜色午夜| 69堂人成无码免费视频果冻传媒| 亚洲一区二区无码偷拍| 国产亚洲精午夜久久久久久| 久久国产精品免费观看| 亚洲老熟女五十路老熟女bbw| 亚洲国产小视频精品久久久三级 | 有码人妻在线免费看片| 亚洲AV永久无码精品成人| 成年美女黄网站18禁免费 | 免费无码一区二区三区蜜桃| 亚洲免费在线视频播放| 一本久到久久亚洲综合| 99ee6热久久免费精品6| 日本亚洲高清乱码中文在线观看| 亚洲av激情无码专区在线播放 | 久青草视频97国内免费影视|