2011-07-28 17 views
6

¿Hay una anotación de EJB o JPA que sea equivalente a @Transactional de Spring?EJB3/JPA @Transactional

+0

posible duplicado de [¿Hay algo análogo a Springs @Transactional anotación disponible en JEE 6?] (Http://stackoverflow.com/questions/6424289/is-there-something-analogous-to-springs-transactional-annotation -availabe-in-jee) –

Respuesta

8

El atributo EJB3 equivalente es javax.ejb.TransactionAttribute.

Al igual que @Transactional anotación de la primavera, se puede controlar la operación 'propagación' pasando un TransactionAttributeType a la TransactionAttribute anotación, como:

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

Container operaciones gestionadas se describen en Part IV of the Java EE 5 Tutorial.

2

Ver javadoc en.

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

A saber, el párrafo: Ver la especificación EJB para las restricciones en el uso de @Transactional con EJB.

No he encontrado en EJB 3.2 ninguna referencia al condicionamiento en este soporte.

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

Sin embargo, en WebLogic 12.1.2 EJB 3.1 - el atributo @Transactional trabaja en ejbs @Stateless @Local que se inyecta en una clase base utilizando la anotación CDI @Inject.

En cualquier caso, no utilizaría la anotación @Transactional para EJB, incluso si todos los EJB son locales y los inyecta a todos con @Inject en lugar de @EJB. Seguiría utilizando @TransactionAttribute con EJB.

Cuestiones relacionadas