luj*_*jop 4 jta cdi java-ee-7 jakarta-ee
CDI @Transactional(Transactional.TxType.REQUIRES_NEW) 在同一个 bean 中调用时是否有效:
@Transactional
public void method1() {
for(...) {
method2();
}
}
@Transactional(Transactional.TxType.REQUIRES_NEW)
public void method2() {
...
}
Run Code Online (Sandbox Code Playgroud)
我想它不起作用,因为代理无法拦截本地调用。在这种情况下,如果我想在新事务中管理 method2 的每次调用,推荐的使用模式是什么。显而易见的是创建另一个bean,但这是我不喜欢的。
拦截本地方法调用不适用于 CDI,您不能将类直接注入自身(循环依赖)。另请参阅同一实例中的 CDI 调用拦截器注释方法
自注入问题仍然存在,见https://issues.jboss.org/browse/CDI-414
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |