2009-08-27 18 views
1

JOTMとHibernate EntityManagerを統合して、EJBをトランザクション方式の環境ではあるがコンテナ外でテストしようとしています。 Hibernate EntityManager + JOTM:トランザクションは使用されません

  • 設定休止状態とEMFを作成JNDIにDataSourceを入れてJNDIに

    1. スタートJOTM
    2. 入れJOTMのUserTransactionの
    3. 作成して構成StandardXADataSource
    4. を:

      は私のテストでは、次のようになります。

    5. EMを作成する
    6. ことを確認し
    7. ストアにEMで取引に参加
    8. エンティティをトランザクションを開始
    9. ロールバックにトランザクションを格納している
    10. 記録
    11. のカウントが
    12. をすべてを取り壊すためのデータベースをチェックしてください

    私のコードは次のようになります。 http://pastebin.com/m22a9f6b

    ここ

    は、ログ出力である: http://pastebin.com/m6da9383a

    テストがステップ12(ライン121)で失敗します。

    ご覧のとおり、トランザクションをロールバックしても、DBにレコードがあります。トランザクションはまったく使われていないようで、レコードはdbに入っています。

    これがどのように起こっているのか、それを修正する方法がありますか?

  • 答えて

    0

    私は理解しました単純な接続の代わりにXAConnectionを返すConnectionProviderの独自の実装を提供する必要があります。このように取引はうまくいくようです

    +0

    私は同じ種類の問題を春の文脈で持っています。 http://stackoverflow.com/questions/1519968/spring-jta-jpa-unit-test-rollback-not-working お手伝いできますか? – Michel

    関連する問題