[英]When calling a spring Non-Transactional method from a Transactional Method in another instance, does the transaction get propagated?
[英]Calling a method through a proxy that uses another method inside with Transactional annotation, would a transaction be created for the latter method?
例子:
class Example {
@Inject
Bee b; // proxy
public void exec() {
b.exec();
}
class Bee {
public void exec() {
exec2();
}
@Transactional
public void exec2() {}
}
正如我最近注意到的那樣,這行不通。 我對嗎? 您是否有一些指向說明該行為的文檔的鏈接? IMO 這種情況可以在未來處理,因為從直覺上看它應該可以工作。
CDI 規范的相關部分是第 7.2 節(容器調用和攔截) 。 由於exec2()
不是通過上下文引用調用的,因此它的調用不構成業務方法調用。 由於它不是業務方法調用,因此不會調用負責實現@Transactional
規定的行為的攔截器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.