使用Morphia映射MongoDB中的层次对象



假设我在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(...))

然后将实体保存在morphia中,它就可以工作了。

附言:我还没试过。

相关内容

  • 没有找到相关文章

最新更新