是否有一个EJB或JPA通知等同于Spring的@Transactional?
发布于 2011-07-29 01:41:47
等效的EJB3属性是javax.ejb.TransactionAttribute。
就像Spring的@Transactional注释一样,您可以通过将TransactionAttributeType传递给TransactionAttribute注释来控制事务的“传播”,如下所示:
@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() {...}
}容器管理的事务在Part IV of the Java EE 5 Tutorial中描述。
发布于 2015-10-22 16:10:29
请参阅上的javadoc。
http://docs.oracle.com/javaee/7/api/javax/transaction/Transactional.html
也就是说,请参阅EJB规范中关于在EJB中使用@Transactional的限制。
在EJB3.2中,我没有发现任何关于这种支持的条件的引用。
http://www.oracle.com/technetwork/java/javaee/tech/index-jsp-142185.html
然而,我在weblogic 12.1.2 EJB 3.1中-- @Transactional属性适用于@Stateless @Local EJB,您可以使用CDI @Inject注释将其注入基类中。
在任何情况下,我都不会对EJB使用@Transactional注释,即使您的所有EJB都是本地的,并且都是用@Inject而不是@EJB注入的。我将继续在EJB中使用@TransactionAttribute。
https://stackoverflow.com/questions/6863142
复制相似问题