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

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成人片黄网站色大片免费观看cn| 成人区精品一区二区不卡亚洲| 三年片在线观看免费观看大全中国| 亚色九九九全国免费视频| 亚洲精品自在线拍| 亚洲电影在线免费观看| 久久亚洲精品成人无码网站| 久久久久免费精品国产小说| 337p日本欧洲亚洲大胆精品555588| 99久久免费看国产精品| 亚洲国产日韩女人aaaaaa毛片在线| 国产大片免费网站不卡美女| 亚洲一区二区三区四区视频| 在线中文高清资源免费观看| 久久综合亚洲色hezyo| 日本黄色免费观看| 日本免费精品一区二区三区| 亚洲精品高清无码视频| 99久久国产免费中文无字幕| 亚洲中文字幕久在线| 美女被免费视频网站a国产| 美女黄频免费网站| 国产AV无码专区亚洲Av| 国产精品免费观看| 国产成人综合亚洲绿色| 亚洲一区二区三区偷拍女厕 | 亚洲影视自拍揄拍愉拍| 四虎成人免费大片在线| 黄视频在线观看免费| 亚洲美女自拍视频| 国产成人免费a在线视频app| 亚洲理论精品午夜电影| av大片在线无码免费| 国产精品亚洲综合一区在线观看| 最新国产AV无码专区亚洲| 亚洲成年人免费网站| 综合一区自拍亚洲综合图区| 亚洲国产精品无码久久SM| 成人免费无码大片a毛片软件| a毛片成人免费全部播放| 亚洲校园春色另类激情|