Привет У меня есть следующие проблемы, используя MapStruct, у меня есть следующие интерфейсы:Исходный и целевой доли тот же интерфейс 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, Роль и РольDto.
Я создал Mapper по имени UserMapper:
@Mapper
public interface UserMapper {
UserDto userToUserDto(User user);
RoleDto roleToRoleDto(Role 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 класс com.raidentrance.model.Role
и я ожидал
Alex класс com.raidentrance.model.RoleDto
Вот мой вопрос подробный Source and target share the same interface MapStruct
Here is my code Я не уверен, если есть что-то вроде в Джексоне @JsonDeserialize (as = Impl.class) или в JPA targetEntity
Примечание: У меня есть решение в ветке, работающее в репозитории github. Там я изменил тип данных для getRole от IRole getRole()
до RoleDto getRole()
, и он работает, но я ищу что-то вроде упомянутого.