不将@TransactionManagement默认设置为CONTAINER?

时间:2017-11-08 17:10:50

标签: ejb java-ee-5

我遇到了Mockito拒绝使用注释@TransactionManagement模拟任何类的问题。现在我知道如果你想在jee6中使用容器管理的事务,则不需要这个注释。 jee5也是如此吗?

1 个答案:

答案 0 :(得分:2)

自EJB 3.0(Java EE 5的一部分)以来,容器管理事务一直是EJB容器中的缺省事务。在此之前,您需要在transaction-type部署描述符中将Bean指定为Containerejb-jar.xml

javax.ejb.TransactionManagement状态的javadoc:

  

如果未使用此注释,则假定该bean具有容器管理的事务管理。

此外,EJB-3.0规范的§13.3.6还指出:

  

默认情况下,如果未指定事务管理类型,则会话Bean或消息驱动Bean具有容器管理的事务划分。