Spring+Hibernate框架的ApplicationContext配置文件问题---热心的朋友帮忙看下..

来源:百度知道 编辑:UC知道 时间:2024/06/05 17:27:57
每次当服务启动时Session则自动关闭.这是为什么.我是用的load()方法进行延时加载查询; 而且我在ApplicationContext.xml的sessionFactory中件中设置了.lazy-init="false";不进行延时加载..

但还是抛出异常如下:
select
personmess0_.ZIPCODE as ZIPCODE114_,
personmess0_.ZIPCODE as ABC
from
SCOTT.PERSONMESSAGE personmess0_
where
rownum <= ?
2009-09-07 08:46:40 could not initialize proxy - the owning Session was closed
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:56)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:98)
at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:158)
at pack.y2.hibernate.pojo.Personmessagetype$$EnhancerByCGLIB$$289a91fc_3.getPname(<generated>)
at sun.reflect.

把配置文件的跟目录beans加上default-lazy-init="false"
<beans default-lazy-init="false">
</beans>

不建议用load(),可以用get()好一些。如果用load()的话,要在使用load()的javaBean下的hibernate的配置文件的class中添加lazy="false"就能解决这个问题。祝你好运。

load()方法会延迟加载
不推荐使用
用get()方法比较好