项目框架:
SpringBoot+JPA+Oracle
问题描述:
调用JPA框架的deleteById()方法报异常,异常信息类型为:EmptyResultDataAccessException
问题原因:
通过查看源码发现,在使用JPA的 deleteById(id) 时,默认实现会通过 findById(id) 查询实体,如果找不到,就会抛出异常而不是静默忽略。

解决方案:
知道问题产生的原因,就方便解决了,两种方法
方法一:执行前判断一下实体是否存在
方法二:对 deleteById(id) 进行处理,只需要在后面加上orElse(null)就可以了
repository.deleteById(id).orElse(null);

被折叠的 条评论
为什么被折叠?



