1
resposta

Tem como fazer Ordenação em um Iterable?

Para fins didáticos, eu preservei a primeira versão do método Visualizar:

@Service
public class CrudFuncionarioService {

//

private void visualizar() {
        Iterable<Funcionario> funcionarios = funcionarioRepository.findAll();
        funcionarios.forEach(funcionario -> System.out.println(funcionario));
    }

}

É possível, nesse caso, realizar algum tipo de Ordenação na exibição dos resultados?

1 resposta

Olá Fabiano! Tudo bem?

Sim, é possível realizar a ordenação dos resultados em um Iterable. Para isso, você pode utilizar o método findAll(Sort sort) do CrudRepository. Esse método permite que você especifique o critério de ordenação dos resultados.

Por exemplo, se você quiser ordenar os funcionários por ordem alfabética do nome, você pode fazer o seguinte:

@Service
public class CrudFuncionarioService {

//

private void visualizar() {
        Sort sort = Sort.by(Sort.Direction.ASC, "nome");
        Iterable<Funcionario> funcionarios = funcionarioRepository.findAll(sort);
        funcionarios.forEach(funcionario -> System.out.println(funcionario));
    }

}

Nesse exemplo, estamos criando um objeto Sort que indica a ordenação ascendente (Direction.ASC) pelo atributo nome. Em seguida, passamos esse objeto como parâmetro para o método findAll.

Espero ter ajudado e bons estudos!