Мне нужно сопоставить множественные dto с объектами. Почти все из них имеют ссылку на другой, и я не знаю, как передать ссылку при сопоставлении dto.
Вот одна из бизнес-реализаций Address:
addressRepository.saveAll(dtos.stream()
.map(addressMapper::asEntity)
.collect(Collectors.toList())).stream()
.map(addressMapper::asDto)
.collect(Collectors.toList());
Вот картограф
@Mappings({
@Mapping(target="streetName", source="streetName"),
@Mapping(target="streetNumber", source="streetNumber"),
@Mapping(target="block", source="block"),
@Mapping(target="floor", source="floor")
})
CsvBusinessData asDto(AddressEntity address);
@InheritInverseConfiguration
AddressEntity asAddressEntity(CsvBusinessData address);
Все разработчики читают из одного и того же dto, а затем сопоставляют их с dto и entites.
Вот для клиента внедрение:
customerRepository.saveAll(dtos.stream()
.map( csvMapper::asCustomerEntity)
.collect(Collectors.toList())).stream()
.map(customerMapper::asDto)
.collect(Collectors.toList());
И сопоставление, в котором мне нужна ссылка на сопоставленный объект адреса (объект моего клиента имеет поле типа адреса).
@Mappings({
@Mapping(target = "nom", source = "lastName"),
@Mapping(target = "nd", source = "accountNumber"),
@Mapping(target = "logo", source = "logo"),
@Mapping(target = "address", source = "address"
)
})
CsvBusinessData asDto(CustomerEntity customer);
@InheritInverseConfiguration
CustomerEntity asCustomerEntity(CsvBusinessData customer);
Большое спасибо.