【问题标题】:Delete mapping method not working with spring删除映射方法不适用于弹簧
【发布时间】:2021-10-03 13:37:45
【问题描述】:

我正在尝试使用 Spring 创建删除映射方法,但是我的代码当前无法正常工作。我对spring很陌生,所以我不确定我是否正确地处理了这个问题,但下面是我的代码:

@CrossOrigin(origins = "http://localhost:4200")
@DeleteMapping(value = {"/delete/{imageName"})
public String deleteImage(@PathVariable("imageName") String imageName) throws IOException{

    userRepository.deleteById();
    return "it worked";

}

userRepository 是一个 JPArepository 实例。我可以使用 deleteByID 方法,但它需要一个整数,我想传入一个字符串作为图像名称。我怎么能这样做呢?下面是我的数据库,名称列是将在此 api 中使用的列。

pic of my db

我想通过http://localhost:8080/delete/background 等邮递员的删除调用并删除数据库中的“背景”图像

【问题讨论】:

  • (1) 不要在 URL 中重复包含 /delete;动词就是这样做的。 (2) 正如我昨天提到的,将deleteByImageName(String) 添加到您的存储库界面。
  • @johny 分享 UserRepository 中使用的实体的代码

标签: java spring rest jpa crud


【解决方案1】:

将你的 deleteImage 方法写成

@CrossOrigin(origins = "http://localhost:4200")
@DeleteMapping(value = {"/{imageName"})
public String deleteImage(@PathVariable("imageName") String imageName) throws IOException{

    userRepository.deleteByName();
    return "it worked";

}

然后,在你的仓库界面中添加一个方法

deleteByName(String name)

因为您的数据库列被称为“名称”,我希望您的实体字段也是“名称”。 Spring 会自动映射它。

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 2018-09-18
    • 2018-09-16
    相关资源
    最近更新 更多