今天遇到一个异常,很奇怪。
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内容也可能有所不同,这里只是说一下我遇到的情况。