В Employee and Phone exampleSpring Data JPA, Hibernate, @ManyToOne (скачивает = FetchType.LAZY) и org.hibernate.LazyInitializationException: не удалось инициализировать прокси - не сессии
Как сделать инициализацию Hibernate ленитесь работать (в Spring Boot)?
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:165) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
at com.example.domain.Employee_$$_jvstb7e_2.toString(Employee_$$_jvstb7e_2.java) ~[bin/:na]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_74]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_74]
at com.example.domain.Phone.toString(Phone.java:13) ~[bin/:na]
at com.example.SpringBootQuerydslTestBean$1.run(SpringBootQuerydslTestBean.java:49) ~[bin/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:806) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
... 6 common frames omitted
public class Phone {
...
@ManyToOne(fetch=FetchType.LAZY)
private Employee owner;
P.S. Некоторые рекомендуют использовать FetchType.EAGER
, как в org.hibernate.LazyInitializationException: could not initialize proxy - no Session, , но выполнение Lazy загрузки (в Spring Spring, Spring Data JPA) является именно моей целью.
вы пробовали current_session_context_class -> нить? – Apostolos
У вас есть классы repository.impl? Вы можете получить данные из запроса JPA. –
Создайте правильную 'toString', которая не включает обратную ссылку. Проблема в том, что вы регистрируете что-то (я думаю) ... Опять же, потенциально опасно, как при работе, вероятно, вы столкнулись бы с переполнением стека из-за того, что Pone ссылался на «Employee», у которого есть «toString», вероятно, ссылающийся на «Телефон» снова и получить и снова. –