【发布时间】:2017-04-26 17:44:10
【问题描述】:
在删除操作期间,JpaRepository能否通知我,我要删除的实体不存在 ?
我知道删除方法不会返回 boolean 值,也不会抛出 Exceptions。
我也知道我可以简单地执行 exists() 或 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);
}
【问题讨论】:
-
将 void 更改为 int,从而拥有
int deleteByTitle(String title);。这将返回受影响的行。因此,如果您的 return > 0 则删除了某些内容。如果你想要一个额外的方法,比如deleteByTitleOrThrow(String title),那么你可以创建一个 ...Impl 类和一个额外的接口来扩展行为并将该方法添加到它。
标签: java spring spring-data-jpa