I have a @Stateless @LocalBean which looks like this
@LocalBean
@Stateless
class TokenBean {
public Token signOn() { <--------+
/* Do some JPA things. */ |
} |
|
public Token logIn() { |
/* Do some JPA things. */ |
return signOn(); --------+
}
@PersistenceContext
private EntityManager entityManager;
}
Within JTA, How can I commit the transaction in a method before calling other methods? Do I just have to call flush() on the entityManager? (Actually I’m doing this)
I tried @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) but I don’t think it’s not for this situation.
entityManager.flush()should be enough, and it will syncronize all attached (to the current persitence context ) entities to the database.The
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)will start a new transaction for you for every method you call but it won’t commit your data unless you exit the method.