以下方法尝试将数据写入DB(
问题在于,如果DB保存失败,我不想写入ES存储库。我尝试使用
有没有办法捕获与SQL相关的特定异常?
firmRepository.save()
)和ElasticSearch(firmSearchRepository.save()
)。问题在于,如果DB保存失败,我不想写入ES存储库。我尝试使用
DataAccessException
捕获异常,但通过我的测试,我发现诸如唯一约束违规之类的异常仍然会传递,并且ElasticSearch中的持久性仍然会执行。@Override
public FirmDTO save (FirmDTO firmDTO) {
log.info("Database Request to save Firm: {}", firmDTO.getFirmId());
Firm firm = firmMapper.firmDTOtoFirm(firmDTO);
try {
firm = firmRepository.save(firm);
firmSearchRepository.save(firm);
return firmMapper.firmToFirmDTO(firm);
} catch (DataAccessException ex) {
log.error(ex.getLocalizedMessage());
return null;
}
}
有没有办法捕获与SQL相关的特定异常?
.save()
)来实现这个功能? - Deniss M.