【发布时间】:2020-11-25 15:30:15
【问题描述】:
例子:
class Example {
@Inject
Bee b; // proxy
public void exec() {
b.exec();
}
class Bee {
public void exec() {
exec2();
}
@Transactional
public void exec2() {}
}
我最近注意到,这行不通。我对吗?您是否有一些指向说明该行为的文档的链接? IMO 这个案子可以在未来处理,因为从直觉上看它应该可以工作。
【问题讨论】:
-
由于默认使用代理,这不起作用,您需要将
Bee注入Bee并进行自我调用(以便它再次通过代理)。这个问题可以追溯到 EJB1.0 时代(可能在旧金山项目之前)并且与代理的性质有关。
标签: java transactions cdi java-ee-7 jta