1

我有一个容器管理的事务和三个 Enterprise Java Bean。第一个 bean 是其他两个 EJBS 之间的链接:

@Stateful
public class UserManagement 
{
    @EJB
    UsersFacade usersFacade;
    @EJB
    UserDetailsFacade userDetailsFacade;

    public void addUser()
    {
       //Point 1
       UserEntity ue = new UserEntity();
       UserDetailsEntity ude = new UserDetailsEntity();
       ue.setDetails(ude);
       userFacade.create(ue); //Wrapper around EntityManager.persist method
       userDetailsFacade.create(ude); Wrapper around EntityManager.persist method
       //Point 2
    }
}

问题: addUser() 中的所有操作是否会在单个事务中执行(userFacade.create 和 userDetailsFacade.create)?@TransactionAttribute(TransactionAttributeType.REQUIRED) 是否意味着事务与 addUser 方法一起开始,它包括从 addUser 方法中执行的所有方法。并且事务在 addUser 结束的那一刻结束?

以及如何确保 addUser 将拥有自己的私有事务(其中将包括其中的方法)以及该事务将在方法终止时提交。?

4

0 回答 0