У меня есть коллекция Монго, которая имеет встроенный массив ObjectId, поэтому общий формат таков:Spring MongoDB - объекты массива прийти нуль
{
"_id" : ObjectId("123abc..."),
"Active" : [
{
"Id" : ObjectId("123abc...")
},
{
"Id" : ObjectId("123abc...")
},
...,
{
"Id" : ObjectId("123abc...")
}
],
"field1" : "blah blah",
"field2" : "blah blah",
"field3" : "blah blah",
"field4" : "blah blah"
"field5" : ObjectId("123abc...")
}
Мой Java класс довольно прост:
@Document(collection="MyCollection")
public class MyCollection {
@Id
private ObjectId id;
private String field1;
...
private ObjectId field5;
@Field("Active")
private List<Active> active;
// Getters & Setters here
public static class Active {
@Field("Id")
private ObjectId id;
public ObjectId getId() {
return id;
}
public void setId(ObjectId id) {
this.id = id;
}
}
}
Когда я делаю запрос, все происходит правильно, но поле «Актив». Если в этом массиве есть 18 записей, я получу список размером 18, но 18 записей в Active.class все равны нулю - поэтому он получает, что это список, он просто не перетаскивает значения ObjectId в активном массиве ,
Я использую весенний и весенний гонщик.
EDIT: Если я использую Монго-Java-драйвер и запрос таким образом:
DB database = mongoClient.getDB("myDB");
DBCollection collection = database.getCollection("MyCollection");
DBObject query = new BasicDBObject("_id", new ObjectId("123abc..."));
DBCursor cursor = collection.find(query);
DBObject jo = cursor.one();
Он работает, и я получаю весь документ, что я ищу - поэтому я полагаю, есть способ сделать это весной?