Здравствуйте, у меня возникла следующая проблема с использованием MapStruct, у меня следующие интерфейсы:
public interface IRole {
String getName();
void setName(String name);
}
public interface IUser {
public String getUsername();
public void setUsername(String username);
public IRole getRole();
public void setRole(IRole role);
public String getPassword();
public void setPassword(String password);
}
У меня есть две реализации обоих:
Пользователь, UserDto, Role и RoleDto.
Я создал Mapper с именем UserMapper:
@Mapper
public interface UserMapper {
UserDto userToUserDto(User user);
RoleDto roleToRoleDto(Role user);
}
Проблема в том, что когда я пытаюсь преобразовать User в UserDto, объект роли не преобразуется, я выполняю следующий основной метод:
public static void main(String[] args) {
UserMapper instance = Mappers.getMapper( UserMapper.class );
Role r=new Role();
r.setName("Admin");
User user=new User();
user.setUsername("Alex");
user.setPassword("Raidentrance123");
user.setRole(r);
UserDto dto=instance.userToUserDto(user);
System.out.println(dto.getUsername());
System.out.println(dto.getRole().getClass());
}
И вот результат:
Alex class com.raidentrance.model.Role
и я ожидал
Alex class com.raidentrance.model.RoleDto
Вот мой подробный вопрос: Источник и цель используют один и тот же интерфейс MapStruct
Вот мой код Я не уверен, есть ли что-то вроде Джексона < strong> @JsonDeserialize (as = Impl.class) или в JPA targetEntity
Примечание: у меня решение в ветке работает в репозитории github. Там я изменил тип данных для getRole с IRole getRole()
на RoleDto getRole()
, и он работает, но я ищу что-то вроде того, что я уже упоминал.