は、私は上記のシナリオでは、メソッド呼び出し階層なぜSpringがトランザクションをコミットしているのですか?
public class UpdateProcess {
public void startingMethod(List<Object> objects){
for (Object obj : objects) {
method1(obj);
}
}
@Transactional
public void method1(Object obj) {
method2(obj);
}
public void method2(Object obj) {
EmployeeService.updateObject(obj)
}
}
public class EmployeeService
@Transactional
public void updateObject(Object obj) {
return customerDao.update(obj);
}
}
の下に持って、私の期待は、例外が階層内のどこにでも発生した場合、スレッドは、方法1またはロールバックから出てくるように、バネは、トランザクションをコミットする必要があります。
しかし、方法2で更新が実行されるとすぐに春がトランザクションをコミットしています。どうして?
更新:@Transactional
から@Transactional(propagation=Propagation.REQUIRES_NEW)
に変更しても、まだトランザクションをコミットしています。したがって、影響はありません
回答を得たい場合は、適切なコードを記入してください。 – Kayaman
@Kayaman関連コードを掲載しました。あなたが探している特定のものはありますか? – emilly
そのコードはコンパイルされないので、明らかに実際のコードではなく、コメントすることは無意味です。 – Kayaman