在删除操作过程中,JpaRepository是否可以通知我要删除的实体不存在?
我知道delete方法不会返回布尔值,也不会引发异常。
我也知道我可以简单地执行exist()或findOne()然后执行删除,但是我很好奇。
有什么办法可以强制这样做吗?
我正在使用Spring Boot 1.5.1。
下面的示例代码:
public HttpStatus deleteEventByTitle(String eventTitle) {
try {
eventRepository.deleteByTitle(eventTitle);
} catch (EntityNotFoundException e) { // just showing what I want to do
return HttpStatus.NOT_FOUND;
}
return HttpStatus.OK;
}
public interface EventRepository extends JpaRepository<Event, Long> {
void deleteByTitle(String title);
}
最佳答案
根据规范,这是不可能的,而且我还不知道这样的功能。
我知道使用Cassandra和Datastax时可以检查wasApplied()
。
唯一的方法是实现自己的deleteOrThrowException
方法并在找不到实体的情况下引发异常。
为此,您可以添加一个
@Query("select count(event)>0 from Event e where eventTitle := eventTitle")
public boolean existsByTitle(String eventTitle);