在编写QueryDSL(MongoDb,Spring)的谓词时,无法与第二级ObjectId匹配


Employee: {
"id": "5812f53ff32eaf1b86e30794"
"firstName": "sham"
"lastName": "saha"
"age": 23
"position": "developer"
"projects": [
{
"id": "5812f53ff32eaf1b86e30792"
"name": "pms"
"description": "Product Managemsadfasent System"
},
{
"id": "5812f53ff32eaf1b86e30793"
"name": "lms"
"description": "Learning Management System"
}
]
}

上面的JSON格式是我的mongodb中的BSON文档。我用下面的代码创建了一个谓词

QEmployee qEmployee = QEmployee.employee;
Predicate predicate = qEmployee.projects.any().id.eq("5812f53ff32eaf1b86e30792");

,

repository.findAll(predicate);

不返回任何东西。除了Id It(名称和描述)的作品。

不正常

任何帮助都是值得感激的。谢谢!

我也遇到过这个问题,并通过将实体中的数据类型从String更改为ObjectId来修复它。所以Empl。id和project。id必须是org.bson.types.ObjectId的类型,以便您可以创建qEmployee.projects.any().id。eq(新ObjectId("5812"f53ff32eaf1b86e30792));

最新更新