POJO を MongoDB (2.0.6) にマッピングするために Morphia (0.99) を使用しています。ここで、jQuery を使用してブラウザー クライアントに送信される各オブジェクトの ID を含むコレクション/リストをデータ ストアから JSON 構造体として返したいと考えています。
データ ストアから POJO リストを取得し、各オブジェクトをDBObject
MongoDB オブジェクトに変換します。これは、オブジェクトの ID がオブジェクトの出力に含まれていないことを除けば、正常に機能します。これは、ID がクラス A から継承されていることが原因である可能性があります。POJO B には多くのプロパティ メンバーがあるため、1 つのアイデアは、単純なプロキシ POJO を作成してからシリアル化することでした。
DBObject
(Morphia または MongoDB ドライバーを使用して)のリストから JSON 構造体を作成するにはどうすればよいid
ですか? また、構造体に for each 要素を含めるにはどうすればよいですか?
PS。MongoDB ドライバー オブジェクトを調べBasicBSONList
たり、GSON (Google) lib を使用したりしましたが、これを行う方法のパターンがありません。
POJO クラス
Class A {
@Id
private ObjectId id;
}
Class B extends A {
...
@Override
public ObjectId getId() {
return super.getId();
}
@Override
public void setId(ObjectId id) {
super.setId(id);
}
...
}
モルフィア/MongoDB クエリ
...
List<B> bList = bQry.asList();
List<DBObject> dbObjList = Util.mapObjectToStringList((List<Object>)(List<?>)bList);
...
public static List<DBObject> mapObjectToStringList(List<Object> objList) {
List<DBObject> dbObjectList = new ArrayList<DBObject>();
Mapper mapper = morph.getMapper();
for(Object obj : objList) {
DBObject dbObj = mapper.toDBObject(obj);
Util.debug("Result as DB Object: " +dbObj.toString());
dbObjectList.add(dbObj);
}
return dbObjectList;
}