在Employee and Phone example春数据JPA,休眠,@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;
附: 一些建议使用FetchType.EAGER
类似于org.hibernate.LazyInitializationException: could not initialize proxy - no Session, ,但使延迟加载工作(在Spring Boot中,Spring Data JPA)正是我的目标。
码你尝试过current_session_context_class - >话题? – Apostolos
你有没有repository.impl类?您可以从JPA查询中获取数据。 –
创建一个不包含反向引用的正确'toString'。问题是你正在记录一些东西(我猜)...再次潜在的危险,因为它会工作时,你可能会遇到一个堆栈溢出异常,因为Pone引用'员工'有'toString'可能再次引用'Phone'并再次获益。 –