Master/Detail retornando somente ultimo registro do detail
5 respostas
A
apalmeira
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.
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
apalmeira
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
thiagow1
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
apalmeira
Entendi,
Tem como sobreescrever a query de consulta do Bean?
T
thiagow1
Não, você tem que criar uma HQL(Hibernate Query Language) com esse select