У меня есть класс DTO, который расширяет класс spring-hateoas
ResourceSupport
.UserMinimalDto
- это DTO для User
сущности.
Итак, для генерации классов сопоставления я использую mapStruct .
@Data //from lambok
@EqualsAndHashCode(callSuper=false)
public class UserMinimalDto extends ResourceSupport {
String firstName;
String lastName;
String email;
String uniqueId;
String profilePicUrl;
}
Я используюResourceSupport
для добавления ссылок hateoas в ответ от контроллера.
Интерфейс Mapper
@Mapper
public interface UserMinimalMapper {
UserMinimalMapper INSTANCE = Mappers.getMapper(UserMinimalMapper.class) ;
UserMinimalDto entityToDto(User user);
User dtoToEntity(UserMinimalDto userMinimalDto);
}
Но когда я запускаю mvn clean install
в проекте, я сталкиваюсь с ошибкой компиляции
Невозможно сопоставить свойство "org.springframework.hateoas.Link id" с "java.lang.Integer id".Попробуйте объявить / реализовать метод сопоставления: «java.lang.Integer map (значение org.springframework.hateoas.Link)».
Это потому, что mapStruct
пытается сопоставить поляResourceSupport
.Это работает, если:
- Я удаляю extends ResourceSupport из UserMinimalDto
- Я удаляю dtoToEntity (UserMinimalDto userMinimalDto);из интерфейса mapper
Какая конфигурация скажет mapStruct
не отображать поля суперкласса?