0 Tage Serie
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
java
1
2
3
4
5
6
7
@Service
public 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.