JPA交易范围

时间:2013-02-18 14:53:43

标签: jpa transactions

我正在进行容器管理的事务和三个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将拥有自己的私有事务(将包含其中的方法),并在方法终止时提交事务。 ?

0 个答案:

没有答案