<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)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧美国产欧美色欲| 亚洲av无码一区二区三区乱子伦| 免费观看黄色的网站| 亚洲AV无码国产丝袜在线观看| 日韩亚洲国产高清免费视频| 日本免费人成在线网站| 亚洲视频一区在线观看| xxxxx免费视频| 亚洲av乱码一区二区三区| 日本中文一区二区三区亚洲| 中文字幕人成人乱码亚洲电影| 亚洲伊人色一综合网| 日韩版码免费福利视频| 亚洲综合久久一本伊伊区| 女人被男人躁的女爽免费视频| 欧美好看的免费电影在线观看 | 一级一黄在线观看视频免费| 大胆亚洲人体视频| 久久一区二区免费播放| 成人啪精品视频免费网站| 国产精品亚洲精品日韩电影| 亚洲日本一区二区一本一道| 嫩草成人永久免费观看| 亚洲国产精品人久久电影| 日韩免费福利视频| 91国内免费在线视频| 亚洲AV伊人久久青青草原| 精品无码国产污污污免费网站国产| 午夜私人影院免费体验区| 一级一级一片免费高清| 四虎影视精品永久免费| 免费在线观影网站| 国产亚洲老熟女视频| 四虎一区二区成人免费影院网址 | 中文字幕亚洲无线码a| 少妇太爽了在线观看免费视频| 亚洲日本韩国在线| 九一在线完整视频免费观看| 成人在线视频免费| 色www永久免费| 亚洲youwu永久无码精品 |