Morphia 自定义转换器:我可以将嵌套的 Java 对象的字段直接插入到父文档中吗?
Morphia custom converter: Can I insert a nested Java object's fields directly into the parent document?
我有以下 classes:
@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;
}
当我保存学生 class 的实例时,我希望它们以以下格式保存在 Mongo 数据库中:
{
_id: "12345",
firstName: "Cler",
lastName: "Fit",
street: "123 xyz"
city: "unnt",
zip: 76443
state: "IM"
}
换句话说,即使要保存的 Java 对象具有嵌套成员,我也希望它在生成的文档中保存为平面结构。我可以在 Morphia 中这样做吗?我知道我可以通过在 "Student" class 上定义一个自定义转换器来做到这一点。但是我在 class 中的字段比上面显示的要多得多,我不想单独处理每个字段。理想情况下,我希望在 "Address" class 上定义一个自定义转换器,它有望实现相同的结果。
尝试搜索 Morphia API 文档。不幸的是,API 文档中没有提及太多内容。
Morphia 目前不支持这样的扁平化文档,不。您也许可以使用 @Pre
- 和 @Post
- 注释强制将数据输入和输出该形状,但这需要大量手动映射。
我有以下 classes:
@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;
}
当我保存学生 class 的实例时,我希望它们以以下格式保存在 Mongo 数据库中:
{
_id: "12345",
firstName: "Cler",
lastName: "Fit",
street: "123 xyz"
city: "unnt",
zip: 76443
state: "IM"
}
换句话说,即使要保存的 Java 对象具有嵌套成员,我也希望它在生成的文档中保存为平面结构。我可以在 Morphia 中这样做吗?我知道我可以通过在 "Student" class 上定义一个自定义转换器来做到这一点。但是我在 class 中的字段比上面显示的要多得多,我不想单独处理每个字段。理想情况下,我希望在 "Address" class 上定义一个自定义转换器,它有望实现相同的结果。
尝试搜索 Morphia API 文档。不幸的是,API 文档中没有提及太多内容。
Morphia 目前不支持这样的扁平化文档,不。您也许可以使用 @Pre
- 和 @Post
- 注释强制将数据输入和输出该形状,但这需要大量手动映射。