0

我有一个@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)了,但我认为这不适合这种情况。

4

1 回答 1

1

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

于 2012-07-19T05:44:29.100 回答