У меня есть объект ProjectCycle
, сопоставленный с mongo DB collection ProjectCycle
. Я пытаюсь получить 2 поля, _id
и Status
. Я могу получить и как следующийSpring-Mongo: отображение поля документа mongo/s в BasicDBObject/Карта BasicDBObject объекта
@Document(collection="ProjectCycle")
public class ProjectCycle {
@Id
private String id;
@Field("Status")
private String status;
//getters and setters
}
Application.java
Query query = new Query();
query.fields().include("Status");
Criteria criteria = new Criteria();
criteria.and("_id").is("1000");
query.addCriteria(criteria);
Iterable<ProjectCycle> objectList = mongoOperations.find(query, ProjectCycle.class);
for(ProjectCycle obj : objectList) {
System.out.println("_id "+obj.getId());
System.out.println("status "+obj.getStatus());
}
Выход
_id 1000
status Approved
Но, проблема в том, когда я использовать Entity с поле private DBObject basicDbObject;
вместо private String status;
я получаю значение в качестве null
вместо Approved
Я попытался как следующий
public class ProjectCycle {
@Id
private String id;
private DBObject basicDbObject;
//getter & setter
}
То, что я пытаюсь достичь этого, коллекция «ProjectCycle
» очень большой и создавая POJO, соответствующий ему, является довольно сложным. Также я только читаю данные от mongoDB. Поэтому создание всего POJO - это время, потраченное впустую и утомительное.
- Как я могу достичь сопоставления между любыми полями/полями из коллекции mongo в entity ?.
- Можно ли создать
Map<String, BasicDBObject> objectMap;
для полей, возвращенных из запроса? Для этого я используюSpring-data-mongodb
.
детали Версия
Spring 4.0.7.RELEASE
пружинными данных MongoDB 1.7.2.RELEASE
Отличный !!! Это то, что я искал ... – RahulArackal