@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 つあります。
@Transactiona
l 属性が applicationContext から取得した参照でアノテーション付きメソッドを呼び出す場合にのみ機能する場合、サービス レイヤーに Transactional アノテーションを配置することはどのように優れているのでしょうか?
よろしくお願いします。