tl;dr
Ele precisará de implementações personalizadas para o repositório e o controlador.
Detalhes
Temos que ter certeza de que não estamos nos perdendo em todos os diferentes aspectos que você está mencionando aqui. Vou tentar desembaraçar os galhos de baixo para cima:
Executando scripts do MongoDB
Como o documentação de referência sobre a execução de scripts com o MongoDB estados (e você já descobriu), a funcionalidade é fornecida
by MongoTemplate
's ScriptOperations
. Assim, como usar essa API deve ser claro. Consulte o Javadoc para obter mais informações. Executando scripts por meio de repositórios Spring Data
A próxima coisa que você está pedindo é executar esses scripts por meio da abstração do repositório. Para não jogar o bebê com a água do banho aqui, certifique-se de que entendemos o propósito de um repositório:ele simula uma coleção de raízes agregadas e o acesso a ela sem expor o mecanismo de persistência subjacente . Expondo tipos como
ExecutableMongoScript
no repositório quebraria o último traço. Portanto, a abordagem correta aqui é criar uma implementação personalizada para essa funcionalidade específica, conforme descrito no documentação de referência sobre repositórios Spring Data
. Expondo a funcionalidade via REST
Estou assumindo que você está se referindo ao recurso Spring Data REST para expor um recurso dedicado para o método de consulta do repositório em sua pergunta. O Spring Data REST atualmente só expõe métodos de consulta declarativa automaticamente, principalmente porque é difícil raciocinar sobre o método HTTP correto para suportar implementações personalizadas, pois não podemos adivinhar o que está acontecendo dentro do método.
A maneira recomendada de expor métodos de consulta de repositório personalizados usando um controlador personalizado com um
@RequestMapping
adequando ao seu propósito, chamando o repositório e usando um PersistentEntityResourceAssembler
injetável no método do manipulador para produzir um PersistentEntityResource
para retornar.