java—通过代理调用一个方法,该代理在事务注解中使用另一个方法,会为后一个方法创建一个事务吗?

9o685dep  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(400)

例子:

class Example {
@Inject
Bee b; // proxy
public void exec() {
 b.exec();
}

class Bee {
  public void exec() {
  exec2();
 }
 @Transactional
 public void exec2() {}
}

正如我最近注意到的,这是行不通的。我说得对吗?您是否有一些指向说明该行为的文档的链接?国际海事组织认为,这一案件可以在未来处理,因为直觉上它似乎应该工作。

ctrmrzij

ctrmrzij1#

cdi规范的相关部分是第7.2节(容器调用和拦截)。自 exec2() 不是通过上下文引用调用的,它的调用不构成业务方法调用。因为它不是业务方法调用,所以拦截器负责实现 @Transactional 不调用。

相关问题