Привет,
В моей модели домена,
«Семья» имеет много подсемейства
У «Подсемейства» много «Локуса»
и отношения двунаправлены с отложенной загрузкой.
есть. Locus может получить доступ в родительском SubFamily с помощью alocus.getSubFamily ();
Ниже фрагмента я дал метод DAO для извлечения Locus.
В моем веб-приложении (на основе Wicket)
Я получаю локус от DAO, а затем пытаюсь получить подсемейство как:
Locus alocus = dao.getLocusByLocusId(alocusid);
SubFamily asubfamily=alocus.getSubFamily();
Но выдает ошибку:
org.hibernate.LazyInitializationException:
не удалось инициализировать прокси - нет
сессия
в org.hibernate.proxy.AbstractLazyInitializer.initialize (AbstractLazyInitializer.java:57)
в org.hibernate.proxy.AbstractLazyInitializer.getImplementation (AbstractLazyInitializer.java:111)
в org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke (CGLIBLazyInitializer.java:150)
в com.bigg.nihonbare.common.domain.SubFamily $$ EnhancerByCGLIB $$ a0d68bed.getSubFamilyId (
Какие-нибудь советы?
public Locus getLocusByLocusId(final String LocusId) {
return (Locus) this.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session) {
Criteria criteria = session.createCriteria(Locus.class);
criteria.add(Expression.eq("locusId", LocusId));
List result =criteria.list();
if (result!=null && result.size() > 0) {
return result.get(0);
}
return null;
}
});
}