我有一个@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)
将为您调用的每个方法启动一个新事务,但除非您退出该方法,否则它不会提交您的数据。