Liferay ポータル サーバー用のポートレットを開発するために、Spring と Hibernate を併用しています。基本的に、A と B の 2 つのエンティティがあり、A には多くの B が含まれている可能性があります。したがって、これは 2 つの間の 1 対多のマッピングになります。
<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、セッションまたはセッションが閉じられませんでした
何が問題なのか、または解決方法のヒントを提案してくれる人はいますか?
ありがとう!