【发布时间】:2021-03-12 12:06:14
【问题描述】:
我遇到了 Json 错误,因为我的 DTO 彼此保持循环引用。
公司DTO:
@Data
public class CompanyDTO {
private Long id;
private String name;
private List<CompanyCountryDTO> companyCountries;
//getters and setters
}
CompanyCountryDTO:
@Data
public class CompanyCountryDTO {
private Long id;
private LocalDateTime createdAt;
private CompanyDTO company;
private CountryDTO country;
//getters and setters
CompanyService 实现将 Company 列表转换为 CompanyDTO 列表:
@Override
public List<CompanyDTO> getAllCompaniesWithCountryDTO() {
List<Company> listCompanies = companyRep.findAll();
return listCompanies.stream().map(this::convertToDto).collect(Collectors.toList());
}
private CompanyDTO convertToDto(Company company) {
CompanyDTO companyWithServiceDTO = modelMapper.map(company, CompanyDTO.class);
return companyWithServiceDTO;
}
我想做这样的事情,但使用 ModelMapper,因为我还有其他循环引用:
listCompanies.stream().forEach(company -> {
if (!ObjectUtils.isEmpty(company.getCompanyCountries())) {
company.getCompanyCountries().forEach(companyCountry -> {
companyCountry.setCompany(null);
});
}
});
我如何从 CompanyCountryDTO 中删除公司引用,因为公司还有另一个 CompanyCountryDTO 列表?
【问题讨论】:
标签: java spring-boot java-8 circular-reference modelmapper