编写 QueryDSL 谓词时无法与二级 ObjectId 匹配(MongoDb,Spring)
Not able to match with second level ObjectId while writing Predicate of QueryDSL(MongoDb,Spring)
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 格式是我的 Mongo 数据库中的 BSON 文档。
我用以下代码创建了一个谓词
QEmployee qEmployee = QEmployee.employee;
Predicate predicate = qEmployee.projects.any().id.eq("5812f53ff32eaf1b86e30792");
但是
repository.findAll(predicate);
没有return任何thing.Other比Id It(名称和描述)works.Only for Object Id It is not wotking.
任何帮助是 appreciable.Thanks!!!
我也遇到了这个问题,并通过将实体中的数据类型从 String 更改为 ObjectId 来修复它。所以 Empl.id 和 Proj.id 必须是 org.bson.types.ObjectId 的类型,这样你就可以 qEmployee.projects.any().id.eq(new ObjectId("5812f53ff32eaf1b86e30792"));
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 格式是我的 Mongo 数据库中的 BSON 文档。 我用以下代码创建了一个谓词
QEmployee qEmployee = QEmployee.employee;
Predicate predicate = qEmployee.projects.any().id.eq("5812f53ff32eaf1b86e30792");
但是
repository.findAll(predicate);
没有return任何thing.Other比Id It(名称和描述)works.Only for Object Id It is not wotking.
任何帮助是 appreciable.Thanks!!!
我也遇到了这个问题,并通过将实体中的数据类型从 String 更改为 ObjectId 来修复它。所以 Empl.id 和 Proj.id 必须是 org.bson.types.ObjectId 的类型,这样你就可以 qEmployee.projects.any().id.eq(new ObjectId("5812f53ff32eaf1b86e30792"));