Master/Detail retornando somente ultimo registro do detail

5 respostas
A

Pessoal,

Preciso fazer um relacionamento master/detail, porém, no detail eu preciso retornar somente o ultimo registro.

Ex: Tenho uma tabela compra e uma tabela status, a compra tem vários status. Eu preciso que em um relatório da compra seja exibido somente o ultimo registro da tabela status.

Não estou conseguindo fazer isso no hibernate.

5 Respostas

T

Select c.id, s.id
from Compra c, Status s
where c.id = s.compraId
and s.id in (
select max(s.id)
from Status s
where s.compraId = c.id )

Não é das melhores mas resolve o problema.

A

O problema é que são exibidas várias “compras” no mesmo DataTable e para cada uma tenho que exibir o status.

Nesse exemplo que vc passou seria somente para uma compra e seu status!? Me corrija se estiver errado.

Não teria alguma configuração no Bean, sei lá, talvez uma anotation dizendo para retornar somete um registro!? Se eu fizer um relationamento ManyToOne funciona, porém, traz todos os registros da tabela status.

T

Ele retorna todas as compras com o último status, faça um teste ae
Não conheço nenhuma annotation que faça isso, vc teria que resolver via Query mesmo.

A

Entendi,

Tem como sobreescrever a query de consulta do Bean?

T

Não, você tem que criar uma HQL(Hibernate Query Language) com esse select

De uma olhada no link abaixo que contém exemplos:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html

Criado 23 de dezembro de 2009
Ultima resposta 23 de dez. de 2009
Respostas 5
Participantes 2