MapStruct - сопоставляет одно свойство класса каждому объекту в списке другого класса.JAVA

Программисты JAVA общаются здесь
Anonymous
MapStruct - сопоставляет одно свойство класса каждому объекту в списке другого класса.

Сообщение Anonymous »

Используя MapStruct, я хотел бы сопоставить RecipientDTO с Recipient. Я хочу, чтобы AddressDTO из RecipientDTO стал адресом в каждой подписке Recipient.subscriptions. Как мне добиться этого с помощью MapStruct? Мои занятия выглядят так:
public class AddressDTO {
String street;
String city;
}

public class SubscriptionDTO {
String category;
}

public class RecipientDTO {
String name;
AddressDTO address;
List subscriptions;
}

public class Address {
String street;
String city;
}

public class Subscription {
Address address;
String category;
}

public class Recipient {
String name;
List subscriptions;
}


Я попробовал указать отдельный интерфейс сопоставления для подписки. Итак
@Mapper
public interface SubscriptionMapper {
SubscriptionMapper INSTANCE = Mappers.getMapper(SubscriptionMapper.class);

@Mapping(target = "address", source = "addressDTO")
Subscription toSubscription(SubscriptionDTO dto, AddressDTO addressDTO);
}

это создаст картограф для подписки.
Но когда я это сделаю
@Mapper(uses = SubscriptionMapper.class)
public interface RecipientMapper {
RecipientMapper INSTANCE = Mappers.getMapper(RecipientMapper.class);

Recipient toRecipient(RecipientDTO recipientDTO);
}

он ​​не будет использовать метод сопоставления с дополнительным параметром из SubscriptionMapper.
Я хотел бы сделать что-то вроде этого, если это возможно:
@Mapping(target = "subscriptions.address", source = "address")
Recipient toRecipient(RecipientDTO recipientDTO);


Подробнее здесь: https://stackoverflow.com/questions/790 ... other-clas

Вернуться в «JAVA»