Ich verwende @Transactional in der Serviceschicht, damit es zurückgesetzt wird, wenn RuntimeException auftritt. Mein Projekt hat eine Klasse namens BussinessException, die RuntimeException erweitert. Ich werde den Fehlercode (z. B. CAM00001) an den aufgetretenen Geschäftsfehler anhängen. Aber ich möchte nur einen Rollback durchführen, wenn ein bestimmter Fehlercode auftritt. Ich versuche, diesen Code unten zu verwenden, aber ich kopiere ihn einfach und verstehe ihn nicht. Hoffentlich zeigt mir jeder einen anderen Weg
Code: Select all
catch (CustomException ex) {
if (!"CAM000116".equals(ex.getErrorCode())) {
System.out.println("Rolling back transaction for order: " + orderId);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
} else {
System.out.println("No rollback for CUS000116 error code: " + orderId);
}
throw ex;
}
Kann ich in den Rollback-Prozess eingreifen?
Kommentieren Sie einfach unten, wenn meine Frage zu verwirrend ist

( mein Englisch ist nicht so gut.