我使用jHipster與彈簧數據JPA和有下面的方法:獲取LazyInitializationException中儘管使用@Transactional(傳播= Propagation.REQUIRES_NEW)
@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);
}
在最後的線I得到一個org.hibernate.LazyInitializationException
excption其我不明白。
- 雖然該方法在自己的事務中運行,但它爲什麼會拋出這個咒語?
- 它不應該只是延遲加載列表,因爲會話仍然打開?
爲什麼使用REQUIRES_NEW? –
我使用REQUIRE_NEW,因爲此方法是從循環中的另一個類中調用的,並且我希望在每次迭代後實體都得到保持。如果一個事務在循環中失敗,我希望以前的迭代已經持續。 – Thailer