У меня есть две доменные сущности:
class Identity {
Long id;
Set<Business> businesses;
}
class Business {
Long id;
String name;
}
У меня есть два DTO, которые расширяют базовый DTO:
class BaseDto {
String id;
}
class IdentityDto extends BaseDto {
Set<BaseDto> businesses;
}
class BusinessDto extends BaseDto {
String name;
}
Затем я создал картограф, который отображает список моего доменаобъекты либо в набор конкретного dto, либо в набор более общего базового dto.Это потому, что когда я получаю список предприятий, мне нужен полный бизнес dto, но когда я получаю личность, я просто использую базовую информацию в своем списке предприятий.
Но когда я пытаюсь создатьПри отображении идентификатора я получаю следующую ошибку:
Ambiguous mapping methods found for mapping property
"Set<Business> businesses" to Set<BaseDto>:
Set<BusinessDto> BusinessMapper.toSet(Set<Business> businesses),
Set<BaseDto> BusinessMapper.toBaseSet(Set<Business> businesses).
Я думал, что mapstruct использует наиболее специфический метод, поэтому следует знать, что в этом случае следует использовать метод toIdentifierSet
.
Как мне заставить mapstruct узнать, какой метод использовать?