我有一份文件,其中包含另外两份文件的参考资料。我必须在UserLogin和shopmaster的id的基础上查询。我怎么能做到这一点。请建议如何查询。
@Id
private String userShopAssociationId;
@DBRef
private UserLogin userLogin;
@DBRef
private ShopMaster shopMaster;
Query query = new Query();
query.addCriteria(Criteria.where("userLogin.$id").is(userShopAssociationForm.getUserLoginId()));
query.addCriteria(Criteria.where("shopMaster.$id").is(userShopAssociationForm.getShopMasterId());
答案 0 :(得分:5)
您看起来正确的查询;您应该能够根据DBRef的_id
进行查询。这是因为DBRef将集合,id和(有时)数据库存储在父文档中。但是,您可能需要将您要比较的ID转换为ObjectId
,如下所示:
Query query = new Query();
query.addCriteria(Criteria.where("userLogin.$id").is(new ObjectId(userShopAssociationForm.getUserLoginId())));
query.addCriteria(Criteria.where("shopMaster.$id").is(new ObjectId(userShopAssociationForm.getShopMasterId()));