我使用jHipster和Spring数据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的要求,我不明白。
发布于 2016-09-25 18:29:39
可能是因为启动了一个新事务而抛出了LazyInitializationException,结果是entityA变成了“分离”。
一个人可以使用这样的东西:
@Transactional
public void addEntityB(long entityAId, entityB) {
EntityA entityA = loadEntityA(entityAId);
addEntityBToEntityA(entityA, entityB);
saveEntity(entityB);
}以这种方式从外面召唤:
for (EntityB entityB : entityBList) {
try {
addEntityB(entityAId, entityB);
}
catch(Exception e){
log(e);
}
} 不过,您确实每次都加载entityA。
https://stackoverflow.com/questions/39682843
复制相似问题