我正在使用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;
}
如何解决这个问题?
答案 0 :(得分:2)
您的id
属性不是数据库中文档的标识符。 _id
是。您应该可以通过将您的域类调整为:
class Test {
@Id ObjectId databaseId;
int id;
…
}
@Id
引用文档标识符,在您的情况下为ObjectId
。请在Spring Data MongoDB reference documentation