Ich habe den folgenden Code:EJB 3-Transaktion Rollback-Ausgabe
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public Car prepareCar(Data data) throws CarServiceException{
Car car = null;
try {
car = carManagerBean.createCar(data);
Driver driver = createDriver();
car.setDriver(driver);
} catch (Exception e) {
LOGGER.error(e.getMessage, e);
context.setRollbackOnly();
throw new CarServiceException(e);
}
return car;
}
Das Problem ist, dass, wenn einige Probleme in Versuch Abschnitt erscheinen (zum Beispiel SQLServerException) Rastabschnitt nicht ausgeführt wird und CarServiceException nicht geworfen. Weiß jemand, was das Problem mit diesem Code sein könnte? Aber die Transaktion wird trotzdem zurückgesetzt. Es funktioniert nur, wenn ich try-catch-Block verschiebe, um den Methodenaufruf zu umbrechen.
Es führt nicht einmal die erste Zeile aus catch-Block: 'LOGGER.error (e.getMessage, e);' – romanvintonyak
Das ist nicht möglich, es sei denn, der Code wirft keine Ausnahme. Versuchen Sie, einen Debug-Protokolleintrag am Ende des try-Blocks einzufügen. –