@ LocalBean方法之间的EJB事务

时间:2012-07-19 02:37:38

标签: jpa ejb-3.1

我有@Stateless @LocalBean,看起来像这样

@LocalBean
@Stateless
class TokenBean {

    public Token signOn() {       <--------+
        /* Do some JPA things. */          |
    }                                      |
                                           |
    public Token logIn() {                 |
        /* Do some JPA things. */          |
        return signOn();           --------+
    }

    @PersistenceContext
    private EntityManager entityManager;
}

JTA内,如何在调用其他方法之前在方法中提交事务?我只需要致电flush()上的entityManager吗? (其实我这样做)

我试过@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW),但我认为不适合这种情况。

1 个答案:

答案 0 :(得分:1)

entityManager.flush()应该足够了,它将所有附加(到当前的persitence context)实体同步到数据库。 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)将为您调用的每个方法启动一个新事务,但除非您退出该方法,否则它不会提交您的数据。