我在读取平面文件中发送的一对多关系时遇到性能问题,例如:
RE IMS001 D12
RE IMS001 D13
RE IMS002 D14
从上面的平面文件位置4-9
是employeeID
并且11-13
是部门信息。所以从第 1 行开始:employeeID=IMS001
但是departmentGroup=D
departmentNumber=12
一名员工可以有多个部门,所以从第二行开始,同样employeeID
IMS001
有一个departmentGroup=D
departmentNumber=13
我有如下的xml映射
<record name="employee" maxLength="51" class="com.a.EmployeeDTO">
<field name="employeeId" position="4" length="6" trim="false" />
<segment name="departments" class="com.a.DepartmentDTO"
collection="list" minOccurs="1" >
<field name="departmentGroup" position="11" length="1" trim="false" />
<field name="departmentNumber" position="12" length="2" trim="false" />
</segment>
</record>
DTO:
Class EmployeeDTO{
private employeeId;
private List<Department> departments = new ArrayList<Department>;
}
Class DepartmentDTO{
private departmentGroup;
private departmentNumber;
}
有了这个,我可以逐行读取一个连接到一个部门的员工 ID。但是,如果您看到 a 的完整文件,employeeID=IMS001
则有两个部门。如何有效地阅读这种关系?我不想在 db 上做太多的 get 调用来检查是否已经插入了部门。