【发布时间】:2016-09-25 02:32:42
【问题描述】:
我使用 jHipster 和 Spring Data JPA 并有以下方法:
@Transactional(propagation=Propagation.REQUIRES_NEW)
public void doSomeWork(EntityA entityA) {
// some code
List<EntityB> entityBList = new ArrayList<EntityB>();
entityBList.add(new EntityB());
entityA.addAllEntityB(entityBList);
}
在最后一行我得到一个我不明白的org.hibernate.LazyInitializationException 例外。
- 虽然该方法在其自己的事务中运行,但为什么会抛出此异常?
- 不应该只是延迟加载列表,因为会话仍处于打开状态?
【问题讨论】:
-
你为什么使用 REQUIRES_NEW?
-
我使用 REQUIRE_NEW 因为这个方法是在循环中从另一个类调用的,我希望在每次迭代后实体都被持久化。如果一个事务在循环中失败,我希望之前的迭代已经持久化。
标签: java hibernate spring-transactions lazy-initialization