5

コンテナ管理のJTAトランザクションのトランザクションをロールバックする正しい方法は何ですか?

私はこれを理解しています: トランザクションインスタンスを取得できないentityManager.getTransaction()を呼び出すときのEJBException 。ここで解決策を読みましたが、これが正しいかどうかはわかりません。

また、例外をスローすると、トランザクションがロールバックされることも認識しています。

しかし、私の質問は、管理されたコンテナを(必須で)使用したい場合、EntityManagerその中のトランザクションをロールバックする正しい方法は何ですか?

4

1 に答える 1

7

コードランチの答えは正しいです、あなたは使用しなければなりませんSessionContext

@Resource
private SessionContext ctx;

//and then in method
if(fail) {
    ctx.setRollBackOnly(); 
}

この記事も参照してください。

于 2013-02-04T12:11:48.043 に答える