有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Spring数据中的java删除映射异常

你好,我想抛出一个异常,以防用户输入系统中不存在的id。 这是我的地图

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

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


共 (2) 个答案

  1. # 1 楼答案

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

    在Spring中,当您使用existsById扩展MongoRepository时,mongodb有一个函数。所以看看文档,也许你的存储库也有这个功能

    当你使用这个函数时,你可以抛出一个异常。就像密码一样

    if(!repository.existsById(id)){
      throw new NotFoundException();
    }
    
    repository.deleteById(id);
    
  2. # 2 楼答案

    你可以试试这样:

    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);
        }
    
    }