假设我在 MongoDB 中有一个实体,用于存储员工列表。
@Entitiy
public class EmployeeList{
@Embedded
List<Employee> employeeList;
}
Employee是一个具有一些属性的抽象类。
public abstract class Employee{
String name;
String emailId;
}
有不同类型的员工 - 开发人员、设计师、人力资源
class Developer extends Employee{
String githubProfile;
}
class Designer extends Employee{
String portfolio;
}
class HumanResource extends Employee{
String department;
}
如果 mongo 包含开发人员、设计师和人力资源人员的列表,Morphia 可以将它们映射到相应的类吗? 例如,如果数据库有以下数据 -
[{'name':'p1', 'emailId':'p1@x1", 'portfolio':'http://abc.co'},
{'name':'p2', 'emailId':'p2@x1", 'department':'finance'},
{'name':'p3', 'emailId':'p3@x1", 'githubProfile':'http://github.com/p3'}]
当 Morphia 将这个集合映射到 EmployeeList
实体时,我如何确保它们映射到相应的类?
最佳答案
当您将员工添加到列表中时,您可能会执行如下操作。
employeeList.add(new Developer(...))
employeeList.add(new Designer(...))
employeeList.add(new HumanResource(...))
然后将实体保存在吗啡中,它应该可以工作。
PS:我没有尝试过。
关于java - 使用 Morphia 映射 MongoDB 中的层次结构对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22959854/