【问题标题】:Read different class than the collection actual class from mongodb从 mongodb 读取与集合实际类不同的类
【发布时间】:2013-02-20 09:05:42
【问题描述】:

我在 Java 和 Spring 中使用最新版本的 MongoDB。

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

Class A 和 Class NotA 完全一样,只有一个区别:Class 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(或介于两者之间的其他对象,然后到 NotA,如果没有其他选择)。

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

我已将 NotA 的 @Document 注释设置为 @Document(collection = "A") 但这还不够,我还需要其他方法。

我猜这个问题有一个简单的解决方案,我就是想不通。帮忙?

【问题讨论】:

    标签: java class mongodb collections


    【解决方案1】:

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

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

    【讨论】:

    • 很遗憾,这是不可能的,因为我不想直接更改数据。
    猜你喜欢
    • 2019-07-15
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多