集合未与任何会话关联+;原因:org.hibernate.LazyInitializationException:非法访问加载集合

集合未与任何会话关联+;原因:org.hibernate.LazyInitializationException:非法访问加载集合,hibernate,Hibernate,hbm文件: 真的 java.math.BigDecimal 受保护的 受保护的 com.quinsteet.domain.product.categorymasterl10详细信息 com.quinsteet.domain.l10n.AbstractL10nDetails 真的 com.quinsteet.persistence.l10n.LocaleDBVO 真的 com.quinsteet.persistence.context.RealmDBVO 真的 我得到的错误是: or

hbm文件:


真的
java.math.BigDecimal
受保护的
受保护的
com.quinsteet.domain.product.categorymasterl10详细信息
com.quinsteet.domain.l10n.AbstractL10nDetails
真的
com.quinsteet.persistence.l10n.LocaleDBVO
真的
com.quinsteet.persistence.context.RealmDBVO
真的

我得到的错误是:

org.springframework.orm.hibernate3.HibernateSystemException:非法访问加载集合;嵌套异常为org.hibernate.LazyInitializationException:对加载集合的非法访问

在浏览器上,我得到的错误为: org.apache.jasper.jaspereException:org.springframework.orm.hibernate3.HibernateSystemException:集合未与任何会话关联;嵌套异常为org.hibernate.HibernateException:集合未与任何会话关联 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)

我使用hibernatetemplate作为:

public List<CategoryMasterDBVO> getAllMainCategories() {
return getHibernateTemplate().loadAll(CategoryMasterDBVO.class);
}
公共列表getAllMainCategories(){ 返回getHibernateTemplate().loadAll(CategoryMasterDBVO.class); } 请给我一些建议


谢谢

当您使用lazyloaded集合加载对象、关闭会话然后访问该集合时,会引发此错误。要么立即获取集合(
SetFetchMode()
),要么保持会话打开

我遇到此错误的原因是我在配置文件中配置事务管理的方式,当添加所需的配置(即
@EnableTransactionManagement
时,问题得到了解决

我将代码更改为:public List findAllMainCategories(){Criteria c=getSession().createCriteria(CategoryMasterDBVO.class);c.setFetchMode(“ProductDbvo”,FetchMode.EAGER);List categories=c.List();return catories;}但还是一样的错误。。。有什么建议吗。。?!
public List<CategoryMasterDBVO> getAllMainCategories() {
return getHibernateTemplate().loadAll(CategoryMasterDBVO.class);
}