JPA 究竟何时REQUIRES_NEW事务提交
2022-09-04 21:56:33
在弹簧容器中,代码如下:
public class A {
@Transactional
public void m1() {
...
b.m2(); // call in a new transaction
...
}
}
public class B {
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void m2() {
...
}
}
究竟何时提交了为 m2()
创建的事务?一旦调用结束,还是一次调用结束?m2()
m1()
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 何时提交?为EJB回答它,但它似乎与JPA的行为不同。
我调试了它,我只能在结束后看到对DB的影响,但这对我来说似乎很奇怪,我在这里错过了什么吗?m2()
m1()
更新:
我正在将我检索到的实体传递到并从那里更新它。因此,实际上合并实体可以解决这个问题,Mik378的答案是正确的。m1()
m2()
m2()