Hibernate JPA,Spring MVC和LazyInitializationException

Ta *_*Sas 0 java spring hibernate jpa spring-mvc

当尝试从db获取项目时,我收到此错误:

13:00:13.876 [7838526@qtp-204712603-0] ERROR o.h.LazyInitializationException - failed to lazily initialize a collection of role: bo.myobj, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: de.myob.linkedstuff, no session or session was closed
Run Code Online (Sandbox Code Playgroud)

我明白,切换到渴望而不是延迟加载解决了这个问题,例如

@OneToMany(mappedBy = "myobj", cascade = CascadeType.ALL, fetch=FetchType.EAGER)
Run Code Online (Sandbox Code Playgroud)

我也明白,不鼓励急切加载.为了解决这个问题,最好的做法是什么?

Sea*_*oyd 5

我很确定在没有活动事务时会发生这种情况.

阅读有关声明式事务管理的弹簧参考部分

通常,@Transactional如果您使用注释或其他正确的xml配置,它可以归结为您的服务方法或需要注释的类<tx:advice>.