java / intermediate
Snippet
Feingranulare Transaktions-Rollback-Strategien
Sie können das Transaktionsverhalten anpassen, indem Sie definieren, welche Exceptions einen Rollback auslösen sollen und welche die Transaktion dennoch abschließen lassen.
snippet.java
1
2
3
4
5
6
7
8
9
@Servicepublic class OrderService {@Transactional(rollbackFor = PaymentException.class, noRollbackFor = LogException.class)public void completeOrder(Order order) throws PaymentException {inventoryService.update(order);paymentService.charge(order);logService.audit(order);}}
spring
Erklärung
1
rollbackFor = PaymentException.class
Stellt sicher, dass die Transaktion zurückgesetzt wird, wenn eine PaymentException auftritt.
2
noRollbackFor = LogException.class
Ermöglicht den Commit der Transaktion, selbst wenn eine unkritische LogException geworfen wird.