@LocalBean方法之间的 EJB 事务



我有一个@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中,如何在调用其他方法之前提交方法中的事务?我只需要在entityManager上打flush()吗?(实际上我是这么做的)

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

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

最新更新