У меня есть программное обеспечение Java EE, которое имеет множество EJB, разделенных определенными функциями. Я хотел бы повторно использовать максимальный код.EJB CDI-перехватчики при прикомандированных вызовах
В этом случае у меня возникла проблема с транзакциями базы данных. Имейте в виду: у меня есть EJB, который должен добавлять продукты и налоговую информацию в базу данных. Этот процесс включает в себя два объекта, и эта операция должна быть атомарной для базы данных.
Для этого я аннотировал метод addProducsAndTaxes
с аннотацией, которая была создана мной @myAmonicTransaction
.
Теперь у меня есть несколько EJB, которые вызывают функцию EJB выше, и вам необходимо присоединиться к этой атомной транзакции с базой данных. Он использует ту же аннотацию AmonicTransaction
, но теперь перехватчик называется два раза; один раз для самого внешнего EJB и еще раз для внутреннего EJB.
Я хотел бы знать, есть ли способ узнать, является ли самый внутренний перехватчик в контексте внешнего EJB, чтобы избежать этого двойного перехвата.