0

@Transactional次のように、Spring アノテーションでアノテーションが付けられた 2 つのメソッドを持つ DAO クラスがあります。

public class ClassDAO {
    @Transactional
    public void save() throws Exception {

    }

    @Transactional
    public void save2() {

    }
}

これら 2 つのメソッドを同じトランザクションの一部にしたいので、いずれかのメソッドが失敗すると、トランザクション全体がロールバックされます。

これらのメソッドは、次のようにサービス レイヤーから呼び出されます。

@Transactional
public void processDAO() {
    dao.save();
    dao.save2();
}

@Transactionalこれが最良のアプローチであると読んだので、サービスレイヤーで注釈を使用していますが、一方で、@Transactional属性はapplicationContextから取得した参照で注釈付きメソッドを呼び出す場合にのみ機能することを読んだので、これが真の場合、@Transactional注釈がサービス層で機能しない理由を説明します。

質問が 1 つあります。

@Transactional 属性が applicationContext から取得した参照でアノテーション付きメソッドを呼び出す場合にのみ機能する場合、サービス レイヤーに Transactional アノテーションを配置することはどのように優れているのでしょうか?

よろしくお願いします。

4

0 に答える 0