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

[Dúvida] Page - Erro java.util.ArrayList cannot be cast to org.springframework.data.domain.Page

Estou realizando alguns testes de paginação em outro projeto. Porém ao usar "Page" o seguinte erro está ocorrendo

java.lang.ClassCastException: java.util.ArrayList cannot be cast to org.springframework.data.domain.Page

E conforme a indicação do erro o mesmo está ocorrendo no trecho:

 return (Page<Arquivo>) jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Arquivo.class));

A forma de chamar a page é diferente usando o jdbcTemplate?

2 respostas
solução!

Olá Anailson, tudo bem?

Pelo erro apresentado, parece que o objeto retornado pela consulta está sendo convertido para um ArrayList, mas você está tentando fazer um cast para Page. Isso não é possível, pois as classes são diferentes.

Uma possível solução seria utilizar o método PageableExecutionUtils da biblioteca Spring Data, que permite criar um objeto do tipo Page a partir de uma lista e um objeto Pageable.

Você pode tentar algo assim:

List<Arquivo> listaArquivos = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Arquivo.class));
Page<Arquivo> paginaArquivos = PageableExecutionUtils.getPage(listaArquivos, pageable, listaArquivos::size);

return paginaArquivos;

Onde pageable é o objeto que contém as informações de paginação (número da página, tamanho da página, etc).

Espero ter ajudado e bons estudos!

Tudo joia. Fiz conforme sua orientação acima e deu certo a paginação. Obrigado, Prof Rodrigo.