2

POJO を MongoDB (2.0.6) にマッピングするために Morphia (0.99) を使用しています。ここで、jQuery を使用してブラウザー クライアントに送信される各オブジェクトの ID を含むコレクション/リストをデータ ストアから JSON 構造体として返したいと考えています。

データ ストアから POJO リストを取得し、各オブジェクトをDBObjectMongoDB オブジェクトに変換します。これは、オブジェクトの 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;
}
4

0 に答える 0