我正在使用 Spring 和 Hibernate 来开发 Liferay 门户服务器的 Portlet。我现在基本上有两个实体,A 和 B,其中 A 可能包含许多 B。所以这就是两者之间的一对多映射。
<set cascade="all" lazy="true" name="comments" order-by="creationDate desc">
<key column="lfpn_pinboardentries_idPinboardEntry" not-null="true"/>
<one-to-many class="Comment"/>
</set>
在DAO层实体A对应的DAO中,我继承自spring提供的“HibernateDaoSupport”,所以典型的数据检索如下:
...
public A getA(long id) {
return (A) getHibernateTemplate().get(A.class, id);
}
...
如果我有“lazy=false”,一切正常,但是一旦我切换到“lazy=true”,它就会给我以下错误:
org.hibernate.LazyInitializationException:未能延迟初始化角色集合:com.lifepin.entities.PinboardEntry.comments,没有会话或会话已关闭
有没有人建议可能是什么问题或提示如何解决它?
谢谢!