@TransactionAttribute的默认值

时间:2014-12-19 19:50:52

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

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

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:4)

TransactionAttribute的默认值为REQUIRED。如果没有使用TransactionAttribute批注并且有问题的EJB使用容器管理的事务,则REQUIRED也是缺省值。

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

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