У меня есть два документа в двух разных коллекциях в mongodb:
{
_id: ObjectId("5ba529f2bf95d10010da97c2"),
name: "documentInCollectionA"
}
документ в коллекции B имеет поле ObjectId со значением из документа в коллекции A:
{
_id: ObjectId("some id"),
name: "documentInCollectionB",
myOtherDoc: ObjectId("5ba529f2bf95d10010da97c2")
}
и я сопоставляю свои java классы, такие как:
@Document(colection = "colA")
class DocA {
private String _id, name;
//getters setters
}
@Document(collection = "colB")
class DocB {
private String _id, name, myOtherDoc;
//getters setters
}
Но когда я загружаю свой DocB из db, заполняются все остальные поля, кроме myOtherDo c, myOtherDo c становится пустым. Я пробовал отображать DocB разными способами:
@Document(collection = "colB")
class DocB {
private String _id, name;
@Field(name: "myOtherDoc")
private org.bson.ObjectId myOtherDoc;
//getters setters
}
@Document(collection = "colB")
class DocB {
private String _id, name;
@Field(name: "myOtherDoc")
private BigInteger myOtherDoc;
//getters setters
}
@Document(collection = "colB")
class DocB {
private String _id, name;
@DBRef or @DBRef(db = "colA")
private DocA myOtherDoc;
//getters setters
}
@Document(collection = "colB")
class DocB {
private String _id, name;
@Field(name: "myOtherDoc")
private DocA myOtherDoc;
//getters setters
}
, но безуспешно ... Я вижу, что значение не равно нулю в моей базе данных, но свойство java не заполняется. Есть идеи как его заселить?