0

私は一般的に休止状態とjava-eeを初めて使用します。データベースを見ると、トランザクションが実際にコミットされていることがわかりますが、このコードがfalseを返す理由を誰かに教えてもらえないでしょうか。

    session.beginTransaction();
    session.saveOrUpdate(user);
    session.getTransaction().commit();
    return session.getTransaction().wasCommitted(); //Always false

ありがとう!

4

1 に答える 1

2

wasCommitted()trueコミットが成功した場合でも、常に戻る必要はありません。trueトランザクションが(明確に)committedこのローカルトランザクションを介して行われた場合に返されます。falseそうでなければ。

ドキュメントから:-

wasCommitted

このメソッドは、commit()の呼び出しが成功した後でもfalseを返す可能性があります。例として、JTAベースのストラテジーは、トランザクションを開始しなかった場合にcommit()呼び出しを実行しません。その場合、彼らはまた、wasCommitted()をfalseとして報告します。

于 2013-03-19T15:47:42.437 に答える