【问题标题】:Does not setting @TransactionManagement default to CONTAINER?不将@TransactionManagement 默认设置为 CONTAINER?
【发布时间】:2018-04-21 11:53:15
【问题描述】:

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

【问题讨论】:

    标签: ejb java-ee-5


    【解决方案1】:

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

    javax.ejb.TransactionManagement 的 javadoc 声明:

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

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

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

    【讨论】:

    • 你指的JavaDoc是jee7版本。如果您结帐 docs.oracle.com/javaee/5/api/javax/ejb/… ,您会看到该评论不存在。这就是首先引起我困惑的原因。除此之外,感谢您对规范的引用
    • 是的 - 当我检查自己时,我意识到了这一点。因此,第二个参考...
    猜你喜欢
    • 2023-03-11
    • 2018-02-12
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多