我有以下代碼:EJB 3事務回滾問題
@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;
}
的問題是,如果有些問題出現在試穿部分沒有執行(例如SQLServerException)閉鎖段和CarServiceException沒有拋出。有人知道這個代碼可能是什麼問題嗎?但交易無論如何都會回滾。 它只有在移動try-catch塊來包裝方法調用時纔有效。
它甚至不會執行catch塊的第一行:'LOGGER.error(e.getMessage,e);' – romanvintonyak
這是不可能的,除非代碼實際上沒有引發異常。嘗試在try塊的末尾插入一個調試日誌條目。 –