Mongo をネイティブ Java ドライバー (サードパーティ ライブラリ/ORM なし) で使用しています。私はこれを持っています:
public class Release extends ReflectionDBObject {
//other fields omitted
private List<ReleaseDetailsByTerritory> releaseDetailsByTerritory = new ArrayList<ReleaseDetailsByTerritory>();
}
public class ReleaseDetailsByTerritory extends ReflectionDBObject { //...}
2 つの "ReleaseDetailsByTerritory" エントリを持つ "Release" エントリを取得し、それらを 2 つの ReleaseDetailsByTerritory クラス インスタンスのリストを含む Release クラス インスタンスで自動インスタンス化する場合は、次のようにする必要があります。
releaseColl.setObjectClass(Release.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.0", ReleaseDetailsByTerritory.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.1", ReleaseDetailsByTerritory.class);
Release r = (Release) releaseColl.findOne();
つまり、埋め込み配列の潜在的な各要素を対応するクラスに具体的にマップする必要があります。
埋め込み配列のすべての要素と任意の要素を特定のクラスにマップすることを Mongo ドライバーに伝える方法はありますか? 何かのようなもの :
collection.setInternalClass("ReleaseDetailsByTerritory.*", ReleaseDetailsByTerritory.class);
?
ありがとう。また、「Spring MondoDb モジュールまたは Morphia を使用してください」とは言わないでください。これが Mongo ネイティブ Java ドライバーで実現可能かどうかを知りたいです。