【问题标题】:Delete Mapping Exception in Spring Data删除 Spring Data 中的映射异常
【发布时间】:2019-12-11 13:17:38
【问题描述】:

您好,如果用户输入系统中不存在的 id,我想抛出异常。 这是我的地图

    @DeleteMapping("/drugs/{neo4jId}")
        public void deleteDrug(@PathVariable Long neo4jId) {
        drugsRep.deleteById(neo4jId);
    }

你有什么建议? * 我不想只在我的前端处理它

【问题讨论】:

标签: java spring spring-mvc spring-data


【解决方案1】:

你可以试试这样的:

if (drugsRep.existsById(neo4jId)) {
    throw new EntityNotFoundExceptionById("Invlaid Id was provided");
}

drugsRep.deleteById(neo4jId);

如果您定义了自定义异常,您可以将其映射到适当的 http 状态。

@ResponseStatus(HttpStatus.NOT_FOUND)
public class EntityNotFoundExceptionById extends RuntimeException {

    public EntityNotFoundExceptionById(String message) {
        super(message);
    }

}

【讨论】:

    【解决方案2】:

    早上好,在这种情况下,您可以检查用户是否存在。

    在 Spring-mongodb 中,当你扩展名为 existsById 的 MongoRepository 时,它有一个功能。所以看看文档,也许你的仓库也有这个功能。

    而且,当你使用这个函数时,你可以抛出一个异常。喜欢代码

    if(!repository.existsById(id)){
      throw new NotFoundException();
    }
    
    repository.deleteById(id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-16
      • 2021-12-12
      • 2013-05-21
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      相关资源
      最近更新 更多