風(fēng)人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數(shù)據(jù)加載中……

          hibernate 延遲加載的錯誤 failed to lazily initialize a collection of role

          這個問題一般出現(xiàn)在一對多的情況下,解決的方法有兩種
          1、設(shè)置lazy=false
          如果是用annotation,則配置如下
          @OneToMany(
             targetEntity = CourseAuthorizationItem.class,
             cascade = {CascadeType.PERSIST, CascadeType.MERGE},
             mappedBy = "course", fetch=FetchType.EAGER
            )
          將fetch類型設(shè)置成直接獲取

          2、就是使用filter,過濾所有的鏈接
          如果在使用filter的時(shí)候,要配置事務(wù)處理,否則會導(dǎo)致session處于只讀狀態(tài)而不能做修改、刪除的動作

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

          posted on 2008-07-05 09:54 風(fēng)人園 閱讀(4814) 評論(1)  編輯  收藏 所屬分類: Hibernate

          評論

          # re: hibernate 延遲加載的錯誤 failed to lazily initialize a collection of role  回復(fù)  更多評論   

          恩,謝謝,不過
          方法1不好,因?yàn)槲也幌朊看味技虞d子表,很多時(shí)候不需要讀取子表
          方法2試過了,實(shí)際運(yùn)行網(wǎng)站時(shí)可以用,但是在junit測試時(shí)還是報(bào)session關(guān)閉的錯誤,不知道測試時(shí)應(yīng)該怎么解決?
          2009-06-02 11:36 | shappy
          主站蜘蛛池模板: 雅安市| 湖北省| 大庆市| 九寨沟县| 新化县| 南汇区| 蓝山县| 嘉定区| 滕州市| 武冈市| 遂平县| 恩平市| 迁西县| 新巴尔虎右旗| 稻城县| 自治县| 南通市| 沽源县| 连南| 措美县| 定安县| 苍溪县| 凤阳县| 牡丹江市| 通榆县| 深水埗区| 耿马| 荆门市| 安仁县| 交城县| 盐津县| 青州市| 天全县| 宜阳县| 绥芬河市| 庆阳市| 彭阳县| 鄂伦春自治旗| 安庆市| 凤山县| 伊宁县|