Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Ordenar de forma aleatória

Como eu poderia utilizar o método get para receber os elementos inseridos via post de forma aleatória?

4 respostas

Augusto, bom dia.

Não sei se entendi muito bem a sua duvida. Mas para você recuperar os elementos inseridos via GET de forma aleátoria você pode criar uma QUERY personalizada utilizando o SQL para retornar.

exemplo, existe esse método que retorna uma os elementos ordenados pelo nome:

public Page<InfoListagemCliente> getDepoimentos(@PageableDefault(size = 10, sort = {"nome"}) Pageable pageable){
        return clienteRepository.findAll(pageable).map(InfoListagemCliente::new);
    }

tentei fazer a consulta via query mas estou recebendo um erro 404

como vc faria um método semelhate para retornar de forma aleatória 3 elementos através de uma query personalizada, levando em consideração que tenho as mesmas classes trabalhadas nesse curso?

Augusto, a query personalizada ela é criada dentro da classe onde contem seu repository.

Que no caso você vai ter que passar também o pageable.

Segue abaixo um exemplo de uma query personalizada com pageable criado por mim

@Query("SELECT v FROM VendaEstoque v WHERE v.id.estoque.id =:idProduto")
    public Page<VendaEstoque> findAllWithProducts(@Param("idProduto") Long idProduto, Pageable pageable);

E claro que isso é da minha aplicação, mas creio que pode servir para você.

solução!

Oi!

No seu ClienteRepository você pode criar um novo método para devolver todos os registros ordenados de maneira aleatória, com a função rand() (caso esteja utilizando o MySQL como banco de dados):

@Query("SELECT c FROM Cliente c ORDER BY rand()")
List<Cliente> buscarTodosOrdenadosAleatoriamente();