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

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

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

    posts - 40,  comments - 187,  trackbacks - 0

    開發環境:
    Struts 1.2 + Spring 1.2.8 + Hibernate 3.2

    遇到的問題:
    org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
    ?at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60)
    ?at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
    ?at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:172)
    ?at com.zhjy.gea.module.affair.domain.Affair$$EnhancerByCGLIB$$e10be950.getAffairCatalogs(<generated>)
    ?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ?at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    ?at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    ?at java.lang.reflect.Method.invoke(Method.java:585)
    ?at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2049)
    ?at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1286)
    ?at org.apache.commons.beanutils.BeanUtilsBean.copyProperties(BeanUtilsBean.java:284)
    ?at org.apache.commons.beanutils.BeanUtils.copyProperties(BeanUtils.java:137)

    分析原因:
    由于Spring控制的Hibernate的生命周期只針對數據層和服務層,而未管理到表現層,所以會出現the owning Session was closed的現象。針對這一點,我通過hibernate filter的方式來解決。

    解決方法:
    在web.xml中配置filter來解決。

    <!-- ?hibernate?session?filter? -->
    ?
    < filter >
    ??
    < filter-name > hibernateFilter </ filter-name >
    ??
    < filter-class > ???org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    ??
    </ filter-class >
    ?
    </ filter >

    < filter-mapping >
    ??
    < filter-name > hibernateFilter </ filter-name >
    ??
    < url-pattern > *.do </ url-pattern >
    ?
    </ filter-mapping >


    記于此處,望遇到同樣問題的朋友,少走彎路。:)

    ??????????????????????????????????????????????????????????????????? THE END
    posted on 2007-07-23 18:31 小立飛刀 閱讀(4368) 評論(3)  編輯  收藏 所屬分類: Hibernate

    FeedBack:
    # re: Hibernate不聽話了-- could not initialize proxy - the owning Session was closed
    2007-07-24 15:14 | 一條老狗
    另外,也可以在Service 或者 dao 層把lazy的Hibernate.initialize強制加載它。這樣在視圖層就不會出現session已關閉的錯誤了。
    當然,這樣似乎lazy就沒有意義了。
    視具體情況而定吧。

      回復  更多評論
      
    # re: Hibernate不聽話了-- could not initialize proxy - the owning Session was closed
    2007-07-24 15:25 | 小雪飛刀
    @一條老狗
    您說的情況比如在編輯頁面里面lazy=true,而在瀏覽頁面lazy=false,這樣可以在需要lazy的地方才進行控制。但是配置文件中Lazy屬性是控制全局的。這時就需要用到Hibernate.initialize(Object proxy) 方法。
    在配置文件里面可以用lazy=true,在程序里面可以用強制加載的方法Hibernate.initialize(Object proxy) 方法強制加載這樣就相當于動態改變為lazy=false。
    但有一點需要注意的是,proxy是持久對象的關聯對象屬性,如要把實體A的關聯實體B也取出時,就要寫Hibernate.initialize(a.b)。  回復  更多評論
      
    # re: Hibernate不聽話了-- could not initialize proxy - the owning Session was closed
    2007-07-24 18:05 | 一條老狗
    lazy 不是全局的,可以單個配置。  回復  更多評論
      
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    生存或毀滅,這是個必答之問題:是否應默默的忍受坎苛命運之無情打擊,還是應與深如大海之無涯苦難奮然為敵,并將其克服。此二抉擇,究竟是哪個較崇高?

    常用鏈接

    留言簿(12)

    隨筆分類(43)

    相冊

    收藏夾(7)

    朋友的博客

    電子資料

    搜索

    •  

    積分與排名

    • 積分 - 302597
    • 排名 - 192

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品久久亚洲一级α| 亚洲午夜久久久精品电影院| 国产亚洲Av综合人人澡精品| 国产成人无码a区在线观看视频免费| 精品久久亚洲中文无码| 无码高潮少妇毛多水多水免费| 精品国产日韩久久亚洲| 美女被免费视频网站a国产| 亚洲成AV人片高潮喷水| 免费人妻无码不卡中文字幕18禁| 一区二区三区免费视频网站 | 国产精品免费看香蕉| 美女露100%胸无遮挡免费观看| 伊人久久亚洲综合影院| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲videosbestsex日本| 特级淫片国产免费高清视频| 阿v视频免费在线观看| 亚洲精品国精品久久99热一| 97久久免费视频| 亚洲Av永久无码精品黑人| 亚洲片国产一区一级在线观看| 黄网站免费在线观看| 亚洲国产最大av| 亚洲欧洲精品成人久久曰影片 | 亚洲高清国产拍精品熟女| 亚洲视频人成在线播放| 免费国产污网站在线观看15| 亚洲真人无码永久在线观看| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 久99久精品免费视频热77| 亚洲福利电影一区二区?| 日本xxwwxxww在线视频免费| 成人毛片100免费观看| 亚洲国产中文在线二区三区免| 国产免费AV片无码永久免费| a级毛片100部免费观看| 亚洲乱亚洲乱妇24p| 亚洲国产精品嫩草影院在线观看| 国产精品视频免费观看| 特黄特色的大片观看免费视频|