プロジェクトのセットアップ:Spring 3.0.5 / JPA 2 / Hibernate / @Transactional
いくつかの異なるデータソース(したがって異なるトランザクションマネージャー)を使用しますが、多くの機能が再利用されるため、共通のサービス基本クラスがあります。
そのため、カスタムアノテーションを使用してこれを解決すると考えました。すべてのメソッドを抽象基本クラスで定義し、TransactionManagerごとに1つの空の実装クラスを作成します。
今問題は次のとおりです。
でAbstractFallbackTransactionAttributeSource
、これは実行されているルックアップです。
TransactionAttribute txAtt = findTransactionAttribute(specificMethod);
// ...
// Second try is the transaction attribute on the target class.
txAtt = findTransactionAttribute(specificMethod.getDeclaringClass());
最初にメソッドがチェックされ、次にメソッドを宣言するクラス(およびその祖先)がチェックされます。しかし、私たちのコンテキストでは、カスタムアノテーションは、上に移動しても見つからないサブクラスに存在します。
では、どうすればこの問題を解決できますか?
[春のコミュニティフォーラムでもこの質問をしました]