我有一个json错误,因为我的dto彼此保持一个循环引用。
公司收件人:
@Data
public class CompanyDTO {
private Long id;
private String name;
private List<CompanyCountryDTO> companyCountries;
//getters and setters
}
公司所在国:
@Data
public class CompanyCountryDTO {
private Long id;
private LocalDateTime createdAt;
private CompanyDTO company;
private CountryDTO country;
//getters and setters
companyservice实现将公司列表转换为公司列表收件人:
@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中删除公司引用?
1条答案
按热度按时间cygmwpex1#
我认为您只需要跳过“反向引用”就可以避免循环和无限递归。在这种情况下,字段
company
在CompanyCountryDTO
.要让它工作,请配置您的
ModelMapper
比如: