在删除操作过程中,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);

07-27 14:07