Я делаю что-то вроде этого:
try {
client.restoreFromClusterSnapshot(req);
} catch (AmazonRedshiftException e) {
txUtils.execute((ts) -> {
redshiftDto.setStatus(ResourceStatus.FAILED);
redshiftDto.setStatusDetails(e.getMessage());
redshiftDto.setUpdatedOn(Timestamp.from(Instant.now()));
this.rdao.merge(redshiftDto);
return null;
});
LOGGER.error("CANNOT START REDSHIFT- " + e.getErrorMessage());
throw new AmazonRedshiftException( "CANNOT START REDSHIFT- "
+ e.getErrorMessage());
}
В этом коде я не могу установить переменную базы данных, если выдает ошибку, потому что она завершает мою транзакцию.Если я прокомментирую что throw это будет работать и моя база данных будет установлена.Но я не смогу ничего бросить.Как я могу сделать оба - (бросать и устанавливать значения в БД)