我在我的项目中使用EcllipseLink 2.5。 @TransactionAttribute的默认值是必需的。 如果我们将SessionBean定义为TransactionManagementType CONTAINER,我们是否还需要为SessionBean中的每个方法添加@TransactionAttribute批注以支持事务? 无论如何都要为所有SessionBeans或整个类添加默认配置? 我不想在课堂上为每个方法添加@TransactionAttribute。
非常感谢任何帮助。
由于
答案 0 :(得分:4)
TransactionAttribute的默认值为REQUIRED。如果没有使用TransactionAttribute批注并且有问题的EJB使用容器管理的事务,则REQUIRED也是缺省值。
使用CONTAINER TransactionManagementType标记EJB意味着每个方法都是事务性的,默认情况下使用REQUIRED TransactionAttributeType。您甚至可以跳过TransactionManagement注释,因为默认情况下为EJB启用了CONTAINER TransactionManagementType。您可以使用TransactionAttribute批注覆盖默认值。
您可以在类或方法级别或两者上使用TransactionAttribute批注,在这种情况下,方法批注将覆盖特定方法的类批注。