没有找到能够从类型org.bson.types.ObjectId转换为int类型的转换器(帮助)

时间:2016-01-21 09:34:39

标签: spring-data-mongodb

我正在使用Spring数据和mongodb来使用此函数获取所有测试数据:

当我运行这个

  @RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
  public String errorLogin(HttpServletRequest request) {        
            String uri = request.getRequestURI(); 
            // do sth with the uri here
  }

我的文件:

        List<Test> tests = mongoOps.findAll(Test.class);
    for(Test test : tests){
        log.info(test.toString());
    }

}

我的测试课

{ 
"_id" : ObjectId("56a09fd614923217ac1c545f"), 
"id" : 1.0, 
"address" : [
    1.0, 
    2.0, 
    3.0
]

公共课测试{

@Document(collection = Test.COLLECTION_NAME)

}

错误:

public static final String COLLECTION_NAME = "test";

@Id
private int id;
private List<Double> address;

public Test(int id, List<Double> address) {
    super();
    this.id = id;
    this.address = address;
}

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您的id属性不是数据库中文档的标识符。 _id是。您应该可以通过将您的域类调整为:

来阅读此内容
 class Test {

   @Id ObjectId databaseId;
   int id;
   …
 }

@Id引用文档标识符,在您的情况下为ObjectId。请在Spring Data MongoDB reference documentation

中详细了解相关内容