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 に答える