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

Page vs List - Dúvida

Bom dia.

Por favor gostaria de ajuda para entender o seguinte cenário:

Digamos que tenho uma tabela Usuarios e outra Ferias no banco de dados.

No controller crio um método que o retorno é Page. Antes de devolver os usuários, é necessário verificar se existe dentre os listados com a limitação da paginação algum que esteja de ferias, ou seja, caso encontrar, deverá sair. Utilizando a interface List eu faria alguma coisa deste tipo:

List<Usuario> listaUsuario = usuarioRepository.findByAll();
List<Usuario> novaListaUsuario = new ArrayList();    

if(!listaUsuario.isEmpty()){

    listaUsuario.forEach(u-> {
        if(feriasRepository.findByFerias(listaUsuario.getId(),data).size() 1)
            novaListaUsuario.add(u);
        }
      });
    }
Como fazer utilizando o Page?

Se possível tbm gostaria de exemplos que converte List para Page e Page para lista.

Desde já agradeço!

3 respostas

Oi Thiago,

Voce precisa devolver apenas os usuarios que nao estao de ferias?

O ideal seria realizar esse filtro diretamente no banco, para carregar apenas os usuarios sem ferias e ja devolver como Page<Usuario>:

public interface UsuariosRepository extends JpaRepository<Usuario, Long> {

    @Query("sua query JPQL aqui")
    Page<Usuario> buscarUsuariosSemFerias();

}

Olá Rodrigo, bom dia.

Neste caso usando a anotação @Query é possível passar como parâmetro o Pageable? Como?

Pela atenção, agradeço!

solução!

Oi Thiago,

Basta declarar o parametro Pageable no metodo que o Spring faz a paginacao automatica. Nao precisa colocar nada no @Query.

Bons estudos!