2016-10-28 1 views
0
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 является документом BSON в моей Mongo DB. я создал предикат с помощью следующего кодаНевозможно соответствовать второму уровню ObjectId при записи Предикат QueryDSL (MongoDb, Spring)

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

но

repository.findAll(predicate); 

не возвращает thing.Other чем Id It (имя и descirption) works.Only для Id объекта Не wotking ,

Любая помощь заметна. Спасибо !!!

ответ

1

Я также столкнулся с этой проблемой и исправил ее, изменив тип данных в сущности от String до ObjectId. Поэтому Empl.id и Proj.id должны быть типа org.bson.types.ObjectId, чтобы вы могли сделать qEmployee.projects.any(). Id.eq (новый ObjectId («5812f53ff32eaf1b86e30792»));

Смежные вопросы