sov*_*vas 5 java spring spring-data-jpa
在删除操作期间,JpaRepository可以通知我,我要删除的实体不存在吗?
我知道删除方法不会返回布尔值,也不会抛出异常。
我也知道我可以简单地执行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);
}
Run Code Online (Sandbox Code Playgroud)
Dee*_*kar 11
从 Spring Data JPA (>=1.7.x) 开始,我们可以使用派生 delete或remove查询。它可以返回删除的实体数量或所有实体被删除的数量。
使用它我们可以将代码更新为:
public interface EventRepository extends JpaRepository<Event, Long> {
long deleteByTitle(String title);
}
Run Code Online (Sandbox Code Playgroud)
如果实体不存在,我们可以抛出异常。
public HttpStatus deleteEventByTitle(String eventTitle) {
long numOfEntriesDeleted = eventRepository.deleteByTitle(eventTitle);
if(numOfEntriesDeleted != 1){
return HttpStatus.NOT_FOUND;
}
return HttpStatus.OK;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10159 次 |
| 最近记录: |