问题 EJB事务中的缺省属性


我正在阅读 java ee docs 我想问几个问题,以确保我已经理解了EJB-Transactions正在发生的事情。

1)文档说明了defaalt TransactionManagement 价值是 CONTAINER  和默认值 TransactionAttribute 价值是 REQUIRED:如果是这样,我是对的,以下(Session)Bean执行其所有方法 CONTAINER 托管事务和属性 REQUIRED

@Stateless
public class MyBean{

public void methodA(){
...
}

public void methodB(){
...
}

}

2)文档说明: Container-managed transactions do not require all methods to be associated with transactions. When developing a bean, you can set the transaction attributes to specify which of the bean’s methods are associated with transactions.

如果我省略了 TransactionAttributeType,它是不是自动设置为 REQUIRED?是个 methodB 在以下Bean中没有与事务关联?

@Stateless
@TransactionManagement(CONTAINER)
public class MyBean{

@TransactionAttribute(MANDATORY)
public void methodA(){
...
}

public void methodB(){
...
}

}

4579
2017-12-31 16:13


起源



答案:


  1. 是, CONTAINER 和 REQUIRED 是默认值。

  2. 你给出的报价似乎来自 Java EE 5教程。我同意这句话有些令人困惑。这是一个可能有帮助的重写。

容器管理的事务不需要所有方法来使用   默认的REQUIRED事务语义。在开发豆子时,你   可以通过设置事务来更改事务语义   属性。例如,您可以指定应该运行方法   通过使用NEVER事务属性没有任何事务,


8
2018-01-01 16:57





  1. 默认情况下,方法的事务设置为REQUIRED。因此,methodB()必须具备

1
2018-01-01 16:57