Используя 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 ... ther-class
Сопоставьте одно свойство класса с каждым объектом в списке другого класса. ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
MapStruct - сопоставляет одно свойство класса каждому объекту в списке другого класса.
Anonymous » » в форуме JAVA - 0 Ответы
- 94 Просмотры
-
Последнее сообщение Anonymous
-