Как правильно использовать аннотацию Seam @Transactional? - PullRequest
2 голосов
/ 15 июля 2010

Меня немного смущает значение значений, используемых в аннотации @ Transactional , в частности @ TransactionPropagationType .Возможно, Гэвин подумал, что это будет достаточно очевидно из названия каждого типа перечисления, и решил не документировать фактическое значение ... Как бы то ни было, я понятия не имею, что на самом деле означает любое из следующего: ОБЯЗАТЕЛЬНО, НИКОГДА, НЕ ТРЕБУЕТСЯ, ПОДДЕРЖКА,Кто-нибудь, кто делает?

Ответы [ 3 ]

5 голосов
/ 21 октября 2011

Из книги «Шов в действии» перечисления означают, что:

ТРЕБУЕТСЯ Указывает, что для выполнения метода требуется транзакция.Если транзакция не активна, Seam начнет новую транзакцию.Это тип по умолчанию.

SUPPORTS Указывает, что метод разрешено выполнять при наличии активной транзакции, но он не начнет транзакцию, если она не активна.

ОБЯЗАТЕЛЬНО Указывает, что для выполнения метода требуется активная транзакция.Исключение времени выполнения выдается, если транзакция еще не выполняется.

НИКОГДА Указывает, что транзакция не должна быть активной при вызове этого метода.Исключение времени выполнения будет выдано, если транзакция активна.

Надеюсь, это поможет; -)

3 голосов
/ 15 июля 2010

Эти типы распространения почти одинаковы в разных реализациях декларативного управления транзакциями (EJB3, Spring и Seam). Любопытно, что они документированы только в javadoc весной .

0 голосов
/ 01 февраля 2011

axtavt был прав, смысл такой же, как и в Spring.Документация для шва 3 более детальная, поэтому перечисление TransactionPropagation лучше объяснить

...