'Hateoas possibly adding "type" class to my json rseponse

I'm using spring-hateoas (i know i am using an old version, have to use this one to maintain spring4 dependencies in check) paired with MapStruct and for some reason when i generate the GenericEntity to build the Response it adds my dto classname into a "type" string:

enter image description here

UserController.java:

@Path("users")
@Component
public class UserController {
    @Autowired
    private UserService userService;

    @Autowired
    private UserAssembler userAssembler;

    @Context
    private UriInfo uriInfo;

    @GET
    @Produces(value = MediaType.APPLICATION_JSON)
    public Response listUsers() {
        final List<User> users = userService.list();
        return Response.ok(new GenericEntity<List<UserDto>>(userAssembler.toResources(users)){}).build();
    }
}

UserAssembler.java:

@Component
public class UserAssembler extends JaxRsResourceAssemblerSupport<User, UserDto> {

    private final UserMapper mapper = Mappers.getMapper(UserMapper.class);

    public UserAssembler() {
        super(UserController.class, UserDto.class);
    }

    @Override
    public UserDto toResource(User entity) {
        UserDto user = createResourceWithId(entity.getUserId(), entity);
        UserDto result = mapper.userToUserDto(entity);
        result.add(user.getLinks());
        return result;
    }
}

JaxRsResourceAssemblerSupport.java:

public abstract class JaxRsResourceAssemblerSupport<T, D extends ResourceSupport>
        extends ResourceAssemblerSupport<T, D> {
    private final Class<?> controllerClass;

    public JaxRsResourceAssemblerSupport(Class<?> controllerClass, Class<D> resourceType) {
        super(controllerClass, resourceType);
        this.controllerClass = controllerClass;
    }

    @Override
    protected D createResourceWithId(Object id, T entity) {
        Preconditions.checkNotNull(entity);
        Preconditions.checkNotNull(id);
        D instance = instantiateResource(entity);
        instance.add(JaxRsLinkBuilder.linkTo(controllerClass).slash(id).withSelfRel());
        return instance;
    }
}

UserDto.java:

public class UserDto extends ResourceSupport {

    private Long userId;
    private String name;
    private String surname;
    private String username;
    private String email;
    private Integer fileNumber;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getFileNumber() {
        return fileNumber;
    }

    public void setFileNumber(Integer fileNumber) {
        this.fileNumber = fileNumber;
    }
}

Finally, this is the source that MapStruct generates for mapping the user:

public class UserMapperImpl implements UserMapper {

    @Override
    public UserDto userToUserDto(User user) {
        if ( user == null ) {
            return null;
        }

        UserDto userDto = new UserDto();

        userDto.setUserId( user.getUserId() );
        userDto.setName( user.getName() );
        userDto.setSurname( user.getSurname() );
        userDto.setUsername( user.getUsername() );
        userDto.setEmail( user.getEmail() );
        userDto.setFileNumber( user.getFileNumber() );

        return userDto;
    }

    @Override
    public User userDtoToUser(UserDto userDto) {
        if ( userDto == null ) {
            return null;
        }

        User user = new User();

        user.setName( userDto.getName() );
        user.setSurname( userDto.getSurname() );
        user.setUsername( userDto.getUsername() );
        user.setEmail( userDto.getEmail() );
        user.setFileNumber( userDto.getFileNumber() );
        user.setUserId( userDto.getUserId() );

        return user;
    }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source