Я использую Spring вместе с Hibernate для разработки портлета для сервера портала Liferay. Теперь у меня есть две сущности, 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 я наследую от "HibernateDaoSupport", предоставленного Spring, поэтому типичный поиск данных выглядит следующим образом:
...
public A getA(long id) {
return (A) getHibernateTemplate().get(A.class, id);
}
...
Все работает нормально, если у меня "lazy = false", но как только я переключаюсь на "lazy = true", выдается следующая ошибка:
org.hibernate.LazyInitializationException: не удалось лениво инициализировать коллекцию ролей: com.lifepin.entities.PinboardEntry.comments, ни один сеанс или сеанс не был закрыт
У кого-нибудь есть предложение, в чем может быть проблема, или советы, как ее решить?
Спасибо!