Morphia自定义转换器:我可以将嵌套的Java对象的字段直接插入父文档吗?

时间:2016-03-02 03:26:15

标签: java mongodb morphia

我有以下课程:

@Entity(value="students", noClassnameStored=true)
public class Student {
    @Id 
    private String studentId;
    private String firstName;
    private String lastName;
    private Address address;
}

public class Address {
    private String street;
    private String city;
    private Integer zip;
    private String state;
}

当我保存Student类的实例时,我希望它们在Mongo数据库中以以下格式保存:

{
 _id: "12345",
 firstName: "Cler",
 lastName: "Fit",
 street: "123 xyz"
 city: "unnt",
 zip: 76443
 state: "IM"
}

换句话说,即使保存的Java对象具有嵌套成员,我希望它在结果文档中保存为平面结构。我可以在Morphia那样做吗?我知道我可以通过在“Student”类上定义自定义转换器来实现。但是我在这个课程中有太多的领域,而不是我上面所示,我不想单独处理每一个领域。理想情况下,我想在“地址”类中定义一个自定义转换器,它可以有望实现相同的结果。

尝试搜索Morphia API文档。不幸的是,API文档中没有提到太多内容。

1 个答案:

答案 0 :(得分:0)

Morphia目前不支持这样的扁平化文档,不。您可以使用@Pre - 和@Post注释来强制执行此操作,以按摩该形状的数据,但这需要进行大量的手动映射。