簡體   English   中英

通過代理調用方法,該代理使用內部帶有 Transactional 注釋的另一個方法,是否會為后一種方法創建事務?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM