java / intermediate
Snippet
Transaktions-Propagierung: REQUIRES_NEW
Propagation.REQUIRES_NEW erstellt eine separate Transaktion, die unabhängig von der Transaktion des Aufrufers ist. Wenn die Transaktion des Aufrufers zurückgerollt wird, wird diese dennoch committet, was ideal für Audit-Logs ist.
snippet.java
1
2
3
4
5
6
7
@Servicepublic class AuditService {@Transactional(propagation = Propagation.REQUIRES_NEW)public void logAction(String action) {auditRepository.save(new AuditLog(action));}}
spring
Erklärung
1
propagation = Propagation.REQUIRES_NEW
Pausiert die aktuelle Transaktion und startet eine neue für diese Methode.