Busca seletiva no banco com Hibernate

6 respostas
danilocmiranda

E aê galera!

Primeiro o ambiente:

postgreSQL 9.0
Hibernate 3.2.6
JPA 2.0

Tenho um BD com vários registros que são classificados em diversas categorias.
O que preciso fazer é trazer os três(03) primeiros registros de cada categoria.

Pensei em colocar todas as categorias em uma lista e então a cada laço do for desta lista realizar uma Query procurando os três primeiros registros de cada categoria.

Existe alguma forma mais automatizada no Hibernate para realizar esta tarefa?

Abraço,

6 Respostas

romarcio

Pode fazer assim:

Query q = sess.createQuery("from DomesticCat cat");
q.setFirstResult(3);
q.setMaxResults(3);
List cats = q.list();
danilocmiranda

Esta query só me retorna os três primeiros registros encontrados e não os três primeiros em cada categoria…

Mais alguma sugestão?

romarcio

Te mostrei como trazer os 3 primeiros registros de uma consulta.
Agora faz teu select para trazer os 3 registros de cada categoria.

danilocmiranda

ok,

Tem que ser um select para cada categoria correto?

romarcio

danilocmiranda:
ok,

Tem que ser um select para cada categoria correto?


Pode ser.

Ou pode tentar usar um select desse tipo:

danilocmiranda

@romarcio

Valeu pelas dicas! Consegui fazer um for que percorre todas as categorias e para cada uma delas tenho uma query.

O que você postou parece interessante, coloquei no favoritos e assim que eu conseguir resolver uma pendência aqui vou testas as suas sugestões!

Grande abraço

Criado 4 de junho de 2011
Ultima resposta 6 de jun. de 2011
Respostas 6
Participantes 2