<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永久无码精品网站在线观看| 午夜免费福利在线观看| 日韩亚洲翔田千里在线| 波多野结衣视频在线免费观看| 男性gay黄免费网站| 亚洲成aⅴ人片久青草影院| 立即播放免费毛片一级| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲电影国产一区| 久艹视频在线免费观看| 亚洲午夜国产精品| 国产99视频精品免费视频7| 一级成人a做片免费| 国产∨亚洲V天堂无码久久久| 18禁美女裸体免费网站| 亚洲色精品三区二区一区| jjzz亚洲亚洲女人| 日韩免费在线观看视频| 亚洲三级在线免费观看| 免费一级毛片免费播放| 国产日韩AV免费无码一区二区 | 98精品全国免费观看视频| 国产成人精品亚洲日本在线| 国产v片免费播放| 黄色网站软件app在线观看免费| 亚洲综合小说久久另类区| 国产成人免费全部网站| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 亚洲福利视频网站| 免费午夜爽爽爽WWW视频十八禁 | 久久不见久久见免费影院| 农村寡妇一级毛片免费看视频| 337p日本欧洲亚洲大胆艺术| 免费观看日本污污ww网站一区|