【问题标题】:Default value for @TransactionAttribute@TransactionAttribute 的默认值
【发布时间】:2015-02-18 19:10:21
【问题描述】:

我在我的项目中使用 EcllipseLink 2.5。 @TransactionAttribute 的默认值是必需的。 如果我们将 SessionBean 定义为 TransactionManagementType CONTAINER,是否还需要为 SessionBean 中的每个方法添加 @TransactionAttribute 注解来支持事务? 无论如何要为所有 SessionBeans 或整个类添加默认配置? 我不想在类中的每个方法中都添加@TransactionAttribute。

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: java transactions eclipselink jpa-2.0 ejb-3.0


    【解决方案1】:

    TransactionAttribute 的默认值是必需的。如果没有使用 TransactionAttribute 注释并且所讨论的 EJB 使用容器管理的事务,则 REQUIRED 也是默认值。

    使用 CONTAINER TransactionManagementType 标记 EJB 意味着每个方法都是事务性的,并且默认情况下使用 REQUIRED TransactionAttributeType。您甚至可以跳过 TransactionManagement 注释,因为默认情况下 EJB 启用了 CONTAINER TransactionManagementType。您可以使用 TransactionAttribute 注释来覆盖默认值。

    您可以在类或方法级别或两者上使用 TransactionAttribute 注解,在这种情况下,方法注解将覆盖特定方法的类注解。

    【讨论】:

    • 谢谢。这对我很有帮助。
    猜你喜欢
    • 2018-09-12
    • 2019-07-05
    • 1970-01-01
    • 2015-05-22
    • 2011-01-24
    • 1970-01-01
    • 2013-12-25
    • 2015-03-13
    • 2023-03-03
    相关资源
    最近更新 更多