0

JavaとSpringで最新バージョンのMongoDBを使用しています。

クラスタイプAを格納するコレクションからタイプNotAのクラスを埋められるようにしたいと思います。

クラスAとクラスNotAはまったく同じですが、1つの違いがあります。クラスNotAの名前は、Aではありません:)

議論のために、クラスAは次のようになります。

public class A {
    String name;
    String domain;
}

そして、Aコレクションには次のようなオブジェクトがあります。

{ "_id" : "b7990a90-7d95-4879-bb4a-5ec2fd13e262", "_class" : "com.someservice.A", "name" : "Dan", "domain":"global"}

この質問とは関係のない理由で、Aに読み込んでからNotAにコピーできないため、NotA(または、間にAではない他のオブジェクト、他に選択肢がない場合はNotA)に直接読み込む必要があります。

DBObjectを読み取ってから、すべてのフィールドを手動でコピーできると思いますが、デフォルトのリフレクションメカニズムに任せたいと思います。

NotAの@Documentアノテーションを@Document(collection = "A")に設定しましたが、それだけでは不十分です。残りの方法が必要です。

この問題には簡単な解決策があると思いますが、理解できません。ヘルプ?

4

1 に答える 1

0

可能であれば、Mongoコレクションでドキュメントを直接更新して_class値を調整できます。

{ "_id" : "b7990a90-7d95-4879-bb4a-5ec2fd13e262", "_class" : "com.someservice.NotA", "name" : "Dan", "domain":"global"}
于 2013-02-20T09:11:29.147 に答える