gpt4 book ai didi

java - 在不向域对象添加不必要的注释的情况下使用 Morphia 来持久化域对象的策略?

转载 作者:可可西里 更新时间:2023-11-01 09:53:25 26 4
gpt4 key购买 nike

假设,假设我有一个名为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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com