Распространение транзакций в методах EJBJAVA

Программисты JAVA общаются здесь
Anonymous
Распространение транзакций в методах EJB

Сообщение Anonymous »

Я хочу правильно понять распространение транзакций, пожалуйста, помогите.
Предположим, у нас есть EJB_A без сохранения состояния, который предоставляет услуги уровня приложения.
он использует локальные EJB_B, EJB_C,
оба используют управляемый контейнер EntityManager.

EJB_B и EJB_C используют методы друг друга.
Если я правильно понимаю, каждый EJB получает собственный экземпляр EntityManager для управления одним и тем же модулем персистентности.
Предположим, EJB_A по запросу клиента использует методы бота Например, EJB_B и EJB_C для создания транзакции:

Код: Выделить всё

@Stateless(name = "myejb")

public class EJB_A implements Interface_EJB_A
{
@EJB
private EJB_B ejb_b;

@EJB
private EJB_C ejb_c;

public String method()
{

ejb_b.call();
ejb_c.call();

}

...
}
Как менеджер объектов, внедренный в EJB_C, узнает, что транзакция продолжается,

если он ничего не знает о существовании EntityManager, внедренного в EJB_B?
Этот тип контейнера добавляет магию, которую мне трудно понять...

Вернуться в «JAVA»