假设,假设我有一个名为Person
的域对象。看起来像这样:
public class Member {
private final String firstName;
private final String lastName;
private final String email;
private final String password;
public Member(String firstName, String lastName, String email, String password) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
}
我还有一个 MemberRepository 接口(interface),它定义了基本的 CRUD 和一些其他含糖方法。
现在假设我想使用 Morphia 将这个域对象保存在 MongoDB 实例中。我已经创建了我的 MorphiaMemberRepository 实现,但我不确定如何以尽可能少的困惑存储域对象。
任何 Morphia 用户都知道我需要创建类型为 ObjectId
的 ID 字段并使用 @Id
对其进行注释。此外,我需要使用 @Entity("members")
注释该类。我不一定想用 Morphia/MongoDB 特定的注释弄乱我漂亮的域对象。
所以...堆垛机伙伴们,我应该怎么做才能使这个实现尽可能干净?
最佳答案
这是 Morphia 的要求(至少是 @Id 的要求)。注释不需要更改您使用对象或序列化的方式。它们只是大多数程序忽略的额外元数据;它们是无害的。
如果您有一个独特的字段,那么您不需要添加任何新字段,只需用@Id 标记它并完成它。
如果您真的不想做任何这些,您可以在吗啡中手动创建元数据来处理您的类,但这将需要更多工作,因为该过程不会通过任何外部配置格式公开。
关于java - 在不向域对象添加不必要的注释的情况下使用 Morphia 来持久化域对象的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464989/