Postgresql - Quantidade total de registros em uma consulta paginada

Olá a todos!

Estou utilizando paginação no postgresql (limit, offset)…
Tem alguma forma de obter o total de registros na mesma execução?
OBS: O total que refiro seria o total de registros que a select traria, caso fossem retirados (limit e offset).

Tentei localizar alguma propriedade do Statement ou ResultSet, mas, sem sucesso…

[]s

Que eu saiba, não.

Apenas com um count mesmo.

O size da lita de retorno ajudaria?
fallow

[quote=paulo1911]O size da lita de retorno ajudaria?
fallow[/quote]Mas se a consulta é paginada, a lista não teria o mesmo numero de itens que a paginação?

depende.
Isso ocorre muito na ultima página de registros por exemplo:
eu tenho 100 registros na base
meu pageSize é de 30

sendo assim eu tenho 3 páginas de 30 e uma de 10 registros certo?

Eu posso ter um pageSize de 100 mas se no intervalo eu tiver somente 10 registros nessa pagina o size dessa paginação será o tamanho 10.

fica a dica

[quote=paulo1911]depende.
Isso ocorre muito na ultima página de registros por exemplo:
eu tenho 100 registros na base
meu pageSize é de 30

sendo assim eu tenho 3 páginas de 30 e uma de 10 registros certo?

Eu posso ter um pageSize de 100 mas se no intervalo eu tiver somente 10 registros nessa pagina o size dessa paginação será o tamanho 10.

fica a dica
[/quote]-_-’’ isso aí é matemática que funciona apenas para a ultima página, ou seja, apenas por isso nem precisava abrir o post.
Se for isso que ele queria… na boa, não respondo mais nada hoje. MAuhaha

Tente o código abaixo:

   count(*) over() total  

Pois é, acredito que seja isso que ele precisa.
Paginação não tem segredo.
abç

[quote=paulo1911]Pois é, acredito que seja isso que ele precisa.
Paginação não tem segredo.
abç[/quote]Mas se for na primeira página, como faria do modo como você falou?

Veja:


	public List<UserBean> findAllPaginado(Integer page, Integer pageSize) {
		Criteria criteria = createCriteria();
		criteria.addOrder(Order.asc("name"));
		criteria.setFirstResult((page - 1) * pageSize);
		criteria.setMaxResults(pageSize);
                List<UserBean> toReturn = (List<UserBean>) criteria.list();
                
               toReturn.size();// Aqui eu sei quantos registro vieram na página, simples assim! 

		return toReturn;

	}

Isso também vale para ResultSet, HQL e NativeQuery…
fica a dica

[quote=paulo1911]Veja:


	public List<UserBean> findAllPaginado(Integer page, Integer pageSize) {
		Criteria criteria = createCriteria();
		criteria.addOrder(Order.asc("name"));
		criteria.setFirstResult((page - 1) * pageSize);
		criteria.setMaxResults(pageSize);
                List<UserBean> toReturn = (List<UserBean>) criteria.list();
                
               toReturn.size();// Aqui eu sei quantos registro vieram na página, simples assim! 

		return toReturn;

	}

Isso também vale para ResultSet, HQL e NativeQuery…
fica a dica[/quote]Então eu entendi errado. Achei que ele queria o total encontrado na tabela. ^^

Acho que você entendeu certo.
Do post original:

Foi para isso que eu respondi.