gpt4 book ai didi

java - Morphia:如果一个对象是另一个对象的子集,两个对象可以从同一个集合中提取吗?

转载 作者:行者123 更新时间:2023-12-01 12:25:36 33 4
gpt4 key购买 nike

假设我有两个非常基本的类,它们共享我想存储在 mongo 中的大部分信息。像这样:

public class Customer{

@id
private int customerID;
private String Name;
private int social;
private long balance;
}


public class CustomerInfo{

@id
private int customerID;
private String Name;
private int social;
private long balance;
private Address address;
private PhoneNumber phoneNumber;
}

如果我不想拥有两个几乎相同的集合,而我应该这样做。我是否可以为 CustomerInfo 创建一个集合,并仍然使用其中包含的记录填充 Customer 类,因为它们是 CustomerInfo 的子集?

我知道我可以仅使用我关心的值加载 customerInfo,但我想要一些更优雅的东西,并且可以更好地插入我现有的格式。

最佳答案

@Entity(value="customers", noClassnameStored=false)
public class Customer {

@Id
private ObjectId id;
private String Name;
private int social;
private long balance;
}


public class CustomerInfo extends Customer {
private Address address;
private PhoneNumber phoneNumber;
}

它应该像这样工作。由于您将类名存储在每个文档中,因此您可以轻松查询要使用的类名;尽管 Morphia 会根据属性自行计算出这一点。

PS:除非您知道自己在做什么以及为什么这样做,否则请将您的 ID 保留为 ObjectId。PPS:您可能希望使用对象数据类型而不是基元,以防它们为空 - 在这种情况下它们不会被存储并占用数据库中的空间。

关于java - Morphia:如果一个对象是另一个对象的子集,两个对象可以从同一个集合中提取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365015/

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