【问题标题】:Spring Boot Delete controller returns 204 , but does not delete data from the databaseSpring Boot Delete 控制器返回 204 ,但不会从数据库中删除数据
【发布时间】:2017-06-09 06:00:34
【问题描述】:

以下是我从清单表中删除现有行的代码。

在发送请求时,spring 返回 204。

但是数据并没有从数据库中删除。

在执行获取请求时,我仍然会获得想要删除的数据。

任何帮助将不胜感激。谢谢你

@RequestMapping(value = "/{id}", method = RequestMethod.DELETE, consumes = MediaType.APPLICATION_JSON_VALUE)
        @ResponseStatus(HttpStatus.NO_CONTENT)
        @Transactional(Transactional.TxType.REQUIRES_NEW)
        public void deleteChecklist(@PathVariable("id") Long checklistId) throws ChecklistResourceNotFoundException {
            Checklist checklist = RestPreconditions.checkFound(checklistRepository.findOne(checklistId));
            checklistRepository.delete(checklist);
        }

@Repository
public interface ChecklistRepository extends CrudRepository<Checklist, Long> {
}

【问题讨论】:

  • 你能告诉我们ChecklistRepository的实现吗?
  • 编辑了问题@nowszy94
  • @A.S Checklist 实体与其他实体有关联?
  • 你用的是什么版本的spring-boot?

标签: spring spring-data-jpa crud spring-restcontroller


【解决方案1】:

您正在设置@ResponseStatus(HttpStatus.NO_CONTENT)。难怪 Spring 返回 204。但理想情况下,它应该删除该条目。只需验证从 repo 获取数据的调用实际上返回了 Checklist 实体。如果是这样,那么如果您有数据库级别的权限,那么删除应该可以工作。

【讨论】:

    猜你喜欢
    • 2022-10-13
    • 2019-11-21
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多