2011-07-28 12 views
6

Czy istnieje adnotacja EJB lub JPA, która jest odpowiednikiem Spring @ Transactional?EJB3/JPA @ Transactional

+0

możliwy duplikat [Czy istnieje coś analogicznego do Springs @ Adransakcja adnotacji dostępnej w JEE 6?] (Http://stackoverflow.com/questions/6424289/to-there-something-analogous-to-springs-transactional-annotation -availabe-in-jee) –

Odpowiedz

8

Odpowiednim atrybutem EJB3 jest javax.ejb.TransactionAttribute.

Podobnie jak sprężyny @Transactional adnotacji, można kontrolować transakcję „propagacji” przepuszczając TransactionAttributeType do TransactionAttribute adnotacji, takich jak:

@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() {...} 
} 

Pojemnik udało transakcji zostały opisane w Part IV of the Java EE 5 Tutorial.

2

Zobacz javadoc na.

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

Mianowicie akapit: Zobacz specyfikacji EJB do ograniczeń dotyczących korzystania z @Transactional z EJB.

Nie znalazłem w EJB 3.2 żadnego odniesienia do warunkowania na tej pomocy.

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

Jednak w WebLogic 12.1.2 EJB 3.1 - atrybut @Transactional działa na @Stateless @local EJB, które wstrzykują do klasy bazowej przy użyciu adnotacji CDI @Inject.

W żadnym wypadku nie użyłbym adnotacji @Transactional dla EJB, nawet jeśli wszystkie EJB są lokalne i wstrzykniesz je za pomocą @Inject zamiast @EJB. Będę nadal używać @TransactionAttribute z EJB.

Powiązane problemy