Posso fazer um controlador personalizado espelhar a formatação das classes geradas pelo Spring-Data-Rest / Spring-Hateoas?

Estou tentando fazer algo que acho que deve ser realmente simples. eu tenho umQuestion objeto, configuração com spring-boot, spring-data-rest e spring-hateoas. Todos os princípios funcionam bem. Gostaria de adicionar um controlador personalizado que retorne umList<Question> exatamente no mesmo formato que um GET para o meuRepositoryé/questions url, para que as respostas entre os dois sejam compatíveis.

Aqui está o meu controlador:

@Controller
public class QuestionListController {

    @Autowired private QuestionRepository questionRepository;

    @Autowired private PagedResourcesAssembler<Question> pagedResourcesAssembler;

    @Autowired private QuestionResourceAssembler questionResourceAssembler;

    @RequestMapping(
            value = "/api/questions/filter", method = RequestMethod.GET,
            consumes = MediaType.APPLICATION_JSON_VALUE,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody PagedResources<QuestionResource> filter(
            @RequestParam(value = "filter", required = false) String filter,
            Pageable p) {

        // Using queryDSL here to get a paged list of Questions
        Page<Question> page = 
            questionRepository.findAll(
                QuestionPredicate.findWithFilter(filter), p);

        // Option 1 - default resource assembler
        return pagedResourcesAssembler.toResource(page);

        // Option 2 - custom resource assembler
        return pagedResourcesAssembler.toResource(page, questionResourceAssembler);
    }

}

Opção 1: conte com oSimplePagedResourceAssembler

O problema com esta opção não é dos necessários_links são renderizados. Se houvesse uma correção para isso, seria a solução mais fácil.

Opção 2: implementar meu assembler de recursos abertos

O problema com esta opção é que a implementaçãoQuestionResourceAssembler de acordo comDocumentação Spring-Hateoas leva por um caminho onde oQuestionResource acaba sendo uma quase duplicata deQuestion, e o montador precisa copiar manualmente os dados entre os dois objetos, e eu preciso criar todos os_links à mão. Isso parece muito esforço desperdiçado.

O que fazer?

Eu sei que o Spring já gerou o código para fazer tudo isso quando exporta oQuestionRepository. Existe alguma maneira de usar esse código e usá-lo para garantir que a saída do meu controlador seja contínua e intercambiável com as respostas geradas?

questionAnswers(3)

yourAnswerToTheQuestion