从mongodb读取不同于集合实际类的不同类

时间:2013-02-20 09:05:42

标签: java class mongodb collections

我正在使用Java和Java中的MongoDB最新版本。弹簧。

我希望能够从存储类型A的集合中填充NotA类。

A类和NotA类完全相同,但有一点不同:类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(或其他一些 NOT A之间的对象,然后如果没有别的选择,可以去NotA。

我想我可以读取一个DBObject,然后手动复制所有字段,但宁愿让默认的反射机制做它的事情。

我已将NotA的@Document注释设置为@Document(collection =“A”),但这还不够,我还需要其余部分。

我猜这个问题有一个简单的解决方案,我无法理解。帮助

1 个答案:

答案 0 :(得分:0)

如果您可以 - 您可以直接在Mongo集合中更新您的文档以调整_class值:

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