2014-12-26 74 views
0

我有Java EE軟件,它具有許多按特定功能分開的EJB。我想重複使用最多的代碼。鏈接調用中的EJB CDI攔截器

在這種情況下,我遇到了數據庫事務的問題。請記住:我有一個EJB,它必須在數據庫中添加產品和稅務信息。該過程涉及兩個實體,並且此操作對於數據庫而言必須是原子的。

對於此行爲,我使用我創建的名爲@myAmonicTransaction的註釋標註了方法addProducsAndTaxes

現在我有幾個EJB調用上面的EJB函數,並且需要將這個原子事務與數據庫連接起來。它使用相同的註釋AmonicTransaction,但現在攔截器被調用兩次;一次用於最外部的EJB,一次用於內部EJB。

我想知道是否有辦法知道最內部的攔截器是否在外部EJB的上下文中以避免這種雙重攔截。

回答

1

在我看來,你似乎已經複製了EJB的事務行爲。是否有一個原因,你爲什麼不能使用JTA 1.2的交易攔截器,並且只能在方法addProducsAndTaxes

之內啓動新的交易