I unten Methode Aufrufhierarchie habeWarum Spring hier eine Transaktion durchführt?
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);
}
}
In obigem Szenario ist Meine Erwartung Frühjahr der Transaktion verpflichten sollte als Faden aus Method1 oder Rollback kommt, wenn Ausnahme überall in der Hierarchie auftritt.
Die Transaktion wird jedoch von Spring ausgeführt, sobald das Update in method2 ausgeführt wird. Ich verstehe nicht warum?
UPDATE: - Auch wenn ich @Transactional
ändern @Transactional(propagation=Propagation.REQUIRES_NEW)
seine immer noch die Transaktion zu begehen. Also keine Auswirkungen
Bitte schreiben Sie den richtigen Code, wenn Sie Antworten erhalten möchten. – Kayaman
@Kayaman Ich habe den entsprechenden Code veröffentlicht. Gibt es bestimmte Dinge, die Sie hier suchen? – emilly
Dieser Code wird nicht einmal kompiliert, also ist es eindeutig nicht der echte Code und es wäre nutzlos, ihn zu kommentieren. – Kayaman