2011-07-28 6 views
6

Springの@Transactionalと同等のEJBまたはJPAアノテーションはありますか?EJB3/JPA @トランザクション

+0

[JEE 6でSpring @ Transactionalアノテーションに類似したものはありますか?](http://stackoverflow.com/questions/6424289/is-there-something-analogous-to-springs-transactional-annotation -availabe-in-jee) –

答えて

8

同等のEJB3属性はjavax.ejb.TransactionAttributeです。コンテナは、トランザクションがPart IV of the Java EE 5 Tutorialに記述されている管理

@TransactionAttribute(NOT_SUPPORTED) 
@Stateful 
public class TransactionBean implements Transaction { 
... 
    @TransactionAttribute(REQUIRES_NEW) 
    public void firstMethod() {...} 

    @TransactionAttribute(REQUIRED) 
    public void secondMethod() {...} 

    public void thirdMethod() {...} 

    public void fourthMethod() {...} 
} 

:よう

ただ、Springの@Transactional注釈のように、あなたは、TransactionAttribute注釈にTransactionAttributeTypeを渡すことで、「伝播」のトランザクションを制御することができます。

2

「javadoc」を参照してください。

http://docs.oracle.com/javaee/7/api/javax/transaction/Transactional.html

つまり段落: たEJBと@Transactionalの使用の制限のためのEJB仕様を参照してください。

EJB 3.2では、このサポートのコンディショニングに関する参照が見つかりませんでした。

http://www.oracle.com/technetwork/java/javaee/tech/index-jsp-142185.html

しかし、私は、EJB 3.1のWebLogic 12.1.2に - @Transactional属性を使用すると、CDI @Injectアノテーションを使用して、基本クラスに注入@Stateless @LocalのEJBの上で動作します。

いずれの場合でも、すべてのEJBがローカルで、@EJBの代わりに@Injectをすべて注入しても、@TransactionalアノテーションをEJBに使用しません。 EJBで@TransactionAttributeを引き続き使用します。

関連する問題