封装方法:
public Collection<AddLabourCostDetailReturnDto> echoData(String userId) { List<AddLabourCostDetailDto> list = compactDao.echoData(userId); if (list.size() == 0) { return Collections.EMPTY_LIST; } Map<Integer, AddLabourCostDetailReturnDto> map = new HashMap(); for (AddLabourCostDetailDto dto : list) { AddLabourCostDetailReturnDto rdto = map.get(dto.getEnterpriseId()); if (ValidateUtil.objectIsNull(rdto)) { rdto = new AddLabourCostDetailReturnDto(); rdto.setEnterpriseName(dto.getEnterpriseName()); rdto.setEnterpriseId(dto.getEnterpriseId()); List<AddLabourCostDetailProjectsDto> projects = new ArrayList<>(); rdto.setProjects(projects); map.put(dto.getEnterpriseId(),rdto); } rdto.getProjects().add(new AddLabourCostDetailProjectsDto(dto.getProjectId(),dto.getProjectName())); } Collection<AddLabourCostDetailReturnDto> enterprises = map.values(); return enterprises; }
一、AddLabourCostDetailReturnDto 类(最终要的结构)
public class AddLabourCostDetailReturnDto { private Integer enterpriseId; private String enterpriseName; private List<AddLabourCostDetailProjectsDto> projects; public Integer getEnterpriseId() { return enterpriseId; } public void setEnterpriseId(Integer enterpriseId) { this.enterpriseId = enterpriseId; } public String getEnterpriseName() { return enterpriseName; } public void setEnterpriseName(String enterpriseName) { this.enterpriseName = enterpriseName; } public List<AddLabourCostDetailProjectsDto> getProjects() { return projects; } public void setProjects(List<AddLabourCostDetailProjectsDto> projects) { this.projects = projects; } }
二、 AddLabourCostDetailDto 类(数据库查出的结构)public class AddLabourCostDetailDto { private Integer enterpriseId; private String enterpriseName; private Integer projectId; private String projectName; public Integer getEnterpriseId() { return enterpriseId; } public void setEnterpriseId(Integer enterpriseId) { this.enterpriseId = enterpriseId; } public String getEnterpriseName() { return enterpriseName; } public void setEnterpriseName(String enterpriseName) { this.enterpriseName = enterpriseName; } public Integer getProjectId() { return projectId; } public void setProjectId(Integer projectId) { this.projectId = projectId; } public String getProjectName() { return projectName; } public void setProjectName(String projectName) { this.projectName = projectName; } }三、 AddLabourCostDetailProjectsDto 类public class AddLabourCostDetailProjectsDto { private Integer projectId; private String projectName; public AddLabourCostDetailProjectsDto(){} public AddLabourCostDetailProjectsDto(Integer projectId, String projectName) { this.projectId = projectId; this.projectName = projectName; } public Integer getProjectId() { return projectId; } public void setProjectId(Integer projectId) { this.projectId = projectId; } public String getProjectName() { return projectName; } public void setProjectName(String projectName) { this.projectName = projectName; } }
本文介绍了如何在Java中有效地封装一对多的数据结构,以AddLabourCostDetailReturnDto类为例,详细阐述了具体的实现方法和步骤。

1139

被折叠的 条评论
为什么被折叠?



