Допустим, у меня есть объект в MongoDB, в котором хранится список сотрудников.
@Entitiy
public class EmployeeList{
@Embedded
List<Employee> employeeList;
}
Сотрудник — это абстрактный класс с некоторыми свойствами.
public abstract class Employee{
String name;
String emailId;
}
Есть разные типы сотрудников - Разработчик, Дизайнер, HumanResource
class Developer extends Employee{
String githubProfile;
}
class Designer extends Employee{
String portfolio;
}
class HumanResource extends Employee{
String department;
}
Если mongo содержит список разработчиков, дизайнеров и сотрудников HumanResource, может ли 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
, как мне убедиться, что они сопоставлены с соответствующими классами?