0

Spring の @Transaction に問題があります。基本的に、次のメッセージでトランザクションは作成されません。

進行中のトランザクションがないため ID 挿入を遅らせる

問題の完全な説明をSpring AOPフォーラムに投稿しました

http://forum.springsource.org/showthread.php?132612-Transaction-management

どんな提案でもいただければ幸いです!

ステファノ

4

2 に答える 2

0

解決策を見つけました。

問題はconfiguratoinにありました。私は2つの要素を追加context:spring-configuredしましたが、context:load-time-weaverそれは2つの異なることを意味します。最初のものはAspectJコンパイル時ウィービングをアクティブにし(私は理解していませんでした)、2番目のものはAspectJロード時間ウィービングをアクティブにします。この2つの要素はうまく連携していないと思います。

コンパイル時ウィーバーを使用することにしました。(少し苦労した後...)外部jarは、まだビルドされていないという理由だけで、この構成ではウィーブされていないことがわかりました。

解決する最も簡単な方法は、ノード aspectj-maven-pluginの下に追加する(POM.xml内の)構成を変更することです。configuration

<weaveDependencies>
<weaveDependency>
<groupId>GROUP-ID</groupId>
<artifactId>ARTIFACT-ID</artifactId>
</weaveDependency>
</weaveDependencies>
あなたが織る必要があるすべてのアーティファクトのために。

これで、トランザクションは正常に機能します。

@ラルフ:お時間をいただきありがとうございます!

よろしく、

ステファノ

于 2012-11-22T17:11:02.553 に答える
0

コードでは、次のようにサービスを定義しました。

@Service
@Configurable
public class ServiceImpl<T> implements Service<T> {
@Override
@Transactional
public T save(T entity) {
          ....
    }
}

@Configurable注釈を使用する理由がわかりません。それらが必要ない場合 (つまり、 new を介してこのサービスのインスタンスを作成しない場合) は、それらを削除します。

その理由は、春のドキュメントが@Configurableインジェクションを有効にしていると言っているのを覚えているからですが、@Configurable

于 2012-11-21T14:44:43.220 に答える