La classe d'entité A fait référence à la classe d'entité B et utilise DBRef. Maintenant, je veux interroger certains champs de A et certains champs de B qu'elle contient. Je trouve qu'il n'y a aucun moyen de le faire. Le code est le suivant :
classe publique A {
@Id
private int id;
@DBRef
private B b;
}
classe publique B{
@Id
private int id;
private String name;
}
Le code Dao est le suivant,
BasicDBObject queryObject = new BasicDBObject();
queryObject.put("id", id); //A's id
BasicDBObject fieldObject=new BasicDBObject();
fieldsObject.put("b", 1); //Vous pouvez obtenir tous les champs de B
//fieldsObject.put("b.name", 1); //Le test personnel a échoué, l'erreur était que l'identifiant de B ne pouvait pas être défini sur null, et la raison n'a pas été trouvée
Query query=new BasicQuery(queryObject,fieldsObject);
mongoOperation.find(query, A.class);