Oto jeden, który mnie wprawia w zakłopotanie. Próbuję zaimplementować podstawową strukturę DAO Hibernate, ale mam problem.hibernacja: LazyInitializationException: nie można zainicjować proxy
Oto niezbędne kod:
int startingCount = sfdao.count();
sfdao.create(sf);
SecurityFiling sf2 = sfdao.read(sf.getId());
sfdao.delete(sf);
int endingCount = sfdao.count();
assertTrue(startingCount == endingCount);
assertTrue(sf.getId().longValue() == sf2.getId().longValue());
assertTrue(sf.getSfSubmissionType().equals(sf2.getSfSubmissionType()));
assertTrue(sf.getSfTransactionNumber().equals(sf2.getSfTransactionNumber()));
To nie na trzecim assertTrue gdzie próbuje porównać wartość w SF do odpowiedniej wartości w SF2. Oto wyjątek:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:86)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:140)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
at com.freightgate.domain.SecurityFiling_$$_javassist_7.getSfSubmissionType(SecurityFiling_$$_javassist_7.java)
at com.freightgate.dao.SecurityFilingTest.test(SecurityFilingTest.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
miał ten sam problem i leniwy = false naprawił . Dzięki – autonomatt
teraz w moim przypadku używam 'lazy = false' dla wszystkich poziomów dao, ale okazuje się, że wydajność aplikacji jest powolna z tego powodu, próbowałem ustawić' lazy = true', ale teraz wywoływany jest lazy wyjątek, wszelkie sugestie jak to może być naprawiony. – Rachel
pakore, czy możesz wskazać, dlaczego nie jest rozwiązaniem i jak to zrozumieć? – Victor