2015-04-25 3 views
0

В J2EE документе он говорит,Контейнера EJB Управления выполнения транзакций

Хотя фасоль с управляемым контейнером транзакциями требует меньше кодирования, они имеют одно ограничения: Когда метод выполняется, он может быть связан с либо одной транзакции, либо без транзакции по адресу .

Вопрос 1. Но что я понимаю, если мы не объявить атрибут транзакции с NotSupported или никогда, когда метод выполнения (предположим с обязательный атрибут по умолчанию) его гарантированного метода, который будет работать с в сделке право ?

Также мне нужно знать, предположим, с менеджером контейнера транзакции с атрибутом по умолчанию Обязательный ниже псевдокоде происходит,

class bean1{ 
public void m1(){ 
    bean2.m2(); 
} 
} 

class bean2{ 
public void m2(){ 
} 
} 

** Вопрос 2. ** В этом случае делает м2() в bean2 побежал с в новая транзакция или выполняется под одной транзакцией для m1() в bean1?

+0

http://docs.oracle.com/javaee/7/api/javax/ejb/TransactionAttributeType.html –

ответ

0

Вопрос 1. Но то, что я понимаю, если мы не объявить сделки атрибут с NotSupported или никогда, когда метод исполняющим (предположим, с Обязательным атрибутом по умолчанию) его гарантировали метод к будет работать с в транзакции правильно?

Да, по умолчанию для транзакции, управляемой контейнером, обязательно, что запустит транзакцию, если она не существует. Выставляемый вами параграф несколько необычен (очевидно, либо существует транзакция, либо нет), поэтому я не имею контекста, чтобы дать более полное объяснение.

Вопрос 2. В этом случае делает м2() в bean2 побежал с в новой сделки или бежали под той же самой транзакции для m1() в bean1?

Предполагая, что они являются EJB и не применяются другие атрибуты транзакции (то есть оба метода EJB используют атрибут Обязательный по умолчанию), то оба метода будут использовать одну и ту же транзакцию. Семантика всех атрибутов транзакций описана кратко в javadoc для TransactionAttributeType.

Смежные вопросы