为什么我们在使用@TransactionAttribute时使用@Stateless? EJB

时间:2018-03-25 23:26:18

标签: java jpa ejb

我想知道为什么在使用TransactionAttributeType时我们使用无状态注释,如下所示:

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 
@Stateless
public class Controller {

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

@Stateless确定bean的类型(一个不与客户端保持对话状态的bean)。 @TransactionAttribute确定处理事务的方式。在您的示例中,bean在调用结束后不会保持特定于客户端的状态。但是当您选择REQUIRES_NEW时,它将始终为每个方法调用创建一个新事务(与默认情况下相反,当可以使用现有事务时,如果它不存在则将由容器创建)。