No %s entity with id %s exists! Spring JPA 删除(delete) 报错

时间:2022-09-11 11:45:01

今天遇到一个异常,很奇怪。

Exception的message是:No [this is your entity information] entity with id [this is id] exists!


在使用Spring的JPA的时候,删除操作可能会报出这个异常:

 "exception": "org.springframework.dao.EmptyResultDataAccessException",

 "message": "No class com.xxx.yyy.zzz entity with id 123 exists!",


这个异常是从org.springframework.data.jpa.repository.support.SimpleJpaRepository中抛出的。原因是根据id删除一条记录的时候,该记录已经不存在了。在数据库中直接使用delete语句去删除数据的时候,如果符合where子句条件的记录不存在则不会发生什么,只是告诉用户0行被删除。

但是在JPA中,看了下源码,会先根据条件id去查询,如果查询不到数据就会抛出这个异常


ps:这个异常可能会在其他地方抛出,message内容也可能有所不同,这里只是说一下我遇到的情况。