2010-07-15 2 views
2

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

ответ

3

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

+0

также, похоже, Seam 3 имеют лучшую документацию: http://docs.jboss.org/seam/3/persistence/latest/api/org/jboss/seam/ persistence/transaction/TransactionPropagation.html – Andrey

+0

Обновлено Javadoc Ссылка на текущую версию –

5

Из книги Seam в действии перечислений tyes означает, что:

НЕОБХОДИМЫЕ Указывает, что транзакция необходима для выполнения метода. Если транзакция неактивна, Seam начнет новую транзакцию. Это тип по умолчанию.

ПОДДЕРЖКА Указывает, что метод разрешен для выполнения в присутствии активной транзакции , но он не начнет транзакцию, если она не активна.

MANDATORY Указывает, что для выполнения метода требуется активная транзакция. Исключение из среды выполнения, если транзакция еще не выполняется.

NEVER Указывает, что транзакция не должна быть активной при вызове этого метода. Исключение из среды выполнения, если транзакция активна.

Надеется, что это помогает ;-)

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