1

私は Web アプリケーションを開発中ですが、spring-data を使用することをお勧めします。公平を期すために、それは人生を非常に簡単にし、DAOレイヤーを非常に薄くします.

私が抱えている問題は、データの永続化に関係しています。JPATransactionManager を使用すると、永続性が期待どおりに機能します。しかし、JTATransactionManager を使用する必要があります。これを使用すると、トランザクションは問題ないように見えますが、休止状態のフラッシュは tx コミットに関連付けられていないようです

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (http--127.0.0.1-8080-2) [com.clubgroups.user.registration.service.impl.UserRegistrationServiceImpl.registerUser] という名前で新しいトランザクションを作成: PROPAGATION_REQUIRED,ISOLATION_DEFAULT ; ''

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (http--127.0.0.1-8080-2) 既存のトランザクションに参加

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (http--127.0.0.1-8080-2) トランザクションコミット開始

上記は、トランザクションがコミットされていることを確認するデバッグ メッセージです。しかし、データはデータベースにフラッシュされていないようです。

次のようにトランザクションマネージャーを初期化します。

@Bean
public JpaTransactionManager transactionManager() {
    JtaTransactionManager transactionManager = new JtaTransactionManager();       

    return transactionManager;
}

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

1

あなたの JTA 設定は非常に珍しいので、少し戸惑っています。まず、JTA トランザクションを正しくセットアップする方法に関するリファレンス ドキュメントを参照してください。何らかの手段で JNDI からを取得する必要があるため、単にインスタンス化するだけではJtaTransactionManager機能しません。メソッドを呼び出すと、不足している構成が明らかになるためUserTransaction、エラーがポップアップ表示されるはずです。afterPropertiesSet()@Bean

于 2012-04-26T07:50:51.650 に答える