Включение полей во вложенный объект коллекции из родительского объекта в Dozer - PullRequest
0 голосов
/ 04 июля 2019

У меня есть список Departments, который в свою очередь имеет список Employee, как показано ниже:

Employee emp1 = new Employee("100", "xyz");
Employee emp2 = new Employee("200", "pqr");

Department dept1 = new Department("10", "Account");

List<Employee> empList = new ArrayList<Employee>();

empList.add(emp1);
empList.add(emp2);

dept1.setEmpList(empList);

Ниже приведены классы Department и Employee:

public class Employee {
    private String id;
    private String name;
}

public class Department {
    private String id;
    private String name;
    List<Employee> empList;
}

Я хочу получить список Employee, в котором будет указан идентификатор отдела и имя

public class EmployeeD {
    private String id;
    private String name;
    private String deptId;
    private String deptName;
}

public class EmployeeDepartmentDTO {    
    private List<EmployeeD> empList;
}

То, что я пробовал, выглядит примерно так:

<mapping map-id="depEmpD">
    <class-a>streammapper.Department</class-a>
    <class-b>streammapper.EmployeeD</class-b>
    <field>
        <a>id</a>
        <b>deptId</b>
    </field>
    <field>
        <a>name</a>
        <b>deptName</b>
    </field>
</mapping>
<mapping map-id="department">
    <class-a>streammapper.Department</class-a>
    <class-b>streammapper.EmployeeDepartmentDTO</class-b>

    <field map-id="depEmpD">
        <a>empList</a>
        <b>empList</b>
    </field>
</mapping>

Я могу успешно создать список EmployeeD без deptId и deptName, хотя с приведенным ниже отображением:

<mapping map-id="depEmpD">
    <class-a>streammapper.Department</class-a>
    <class-b>streammapper.EmployeeD</class-b>
    <field>
        <a>id</a>
        <b>deptId</b>
    </field>
    <field>
        <a>name</a>
        <b>deptName</b>
    </field>
</mapping>
<mapping map-id="department">
    <class-a>streammapper.Department</class-a>
    <class-b>streammapper.EmployeeDepartmentDTO</class-b>
    <field>
        <a>empList</a>
        <b>empList</b>
    </field>
</mapping>

Мне нужен список EmployeeD, который будет содержать deptId и deptName также в EmployeeDepartmentDTO объекте.

...