当前位置: 首页 > 知识库问答 >
问题:

在spring和mongodb的形式中使用sign有新的情况findOne中的错误

从光启
2023-03-14
@RestController
@RequestMapping("/enduser")

public class enduserRestCountroller {
    
    @Autowired
    enduserRepository enduserRepository;
    MongoOperations mongoOperations;
    
     //create
    @RequestMapping(method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)
    public void create(@RequestBody enduser enduser){
    enduserRepository.save(enduser);
    }
    
    
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    
    public List<enduser> readall(  ){
    return enduserRepository.findAll();
    }

    @RequestMapping(value = "/{id}" ,method=RequestMethod.GET)

    @ResponseStatus(HttpStatus.OK)

    @CrossOrigin

    public @ResponseBody enduser read(@PathVariable String id){
    return enduserRepository.findOne(id);
    }
    
    @RequestMapping(method = RequestMethod.PUT,consumes = MediaType.APPLICATION_JSON_VALUE)
    public void update(@RequestBody enduser enduser){
        enduserRepository.save(enduser);
    }
    
    @RequestMapping(value = "/deleteuser/{id}",method=RequestMethod.GET)
    public String delete(@PathVariable String id){
        enduserRepository.delete(id);
        return "1";
    }
    
    @RequestMapping(value = "/signin/{username}",method=RequestMethod.GET)
    public enduser login(@PathVariable String username){
         
        System.out.println(username);
         
        username="maged";
        
        Query query=new Query();
        
        enduser user=mongoOperations.
                findOne(
                        query.addCriteria(
                                Criteria.where("username")
                                        .is(username)),enduser.class);
        
        System.out.println("enduser is "+user.getUsername());
        return user;
    }
}

未定义的2017-10-03 13:24:11.353错误5668---[io-8080-exec-10]O.A.C.C.C.[.[.[/].[dispatcherServlet]:servlet.Service()在路径[]上下文中的servlet[dispatcherServlet]引发异常[html" target="_blank">请求处理失败;嵌套异常是java.lang.NullPointerException]

java.lang.nullPointerException:com.adams.demo.restController.endUserRestCountroller.login(endUserRestCountroller.java:84)~[classes/:na]

共有1个答案

严瑞
2023-03-14

看起来您似乎缺少了MongoOperations的@autowired注释:

@Autowired
enduserRepository enduserRepository;
@Autowired
MongoOperations mongoOperations;

您还应该尝试将逻辑与控制器分离,并将类的Java命名约定与用户分离。

您可以在这里找到一个工作示例:

    null
 类似资料:
  • 我试图使用spring-data来取代我们当前使用POJO进行mongodb文档的做法,在本例中,我使用了一些字段,而不是使用字段作为实体的Id。 然后我创建一个查询: 然后我使用mongodb驱动程序更新文档。 这样,我只更新,而不需要考虑对我来说毫无意义的ObjectId。

  • 我试图从mongo集合中检索一个元素,即具有greatest _id字段的元素。我知道这可以通过查询: 但它似乎有点不优雅,我想知道是否有一种方法可以使用findOne()获取特定元素 注意:我想这样做是因为,根据我在ObjectId中读到的内容,第一个字节对应于从Epoch开始的毫秒,因此,插入的最后一个元素将具有最大的_id。有没有其他方法可以检索插入到集合中的最后一个元素?

  • 问题内容: 如果我用javadoc 编写,它不会出现,因为标签在格式化文本方面具有特殊功能。 如何在Javadoc中显示此字符? 问题答案: 您可以使用为 < 和为 > 。

  • 由于我没有使用POJO类,所以当我发布记录时,它会创建一个名为“map”的集合&在其中插入记录。但是,预期是创建“CompanyDetails”集合并在其中存储数据。

  • 本文向大家介绍Spring boot中mongodb的使用,包括了Spring boot中mongodb的使用的使用技巧和注意事项,需要的朋友参考一下 MongoDB是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多。由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配置漏洞被攻击,数据被删,引起了人们的注意,感兴趣的

  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?