Olá pessoal,
Tenho a tabela X com relacionamento @OneToMany com a tabela Y.
Em um relatório eu preciso que seja exibido o registro da tabela X e o ultimo registro da tabela Y.
É o mesmo caso de um site de compras onde é exibido a descrição do pedido e o ultimo histório do processo de compra (EM ANALISE, AUTORIZADO, ENVIADO ETC) em uma unica liha.
Alguem sabe como fazer isso?
A solução provisoria que eu fiz foi colocar uma datatable no jsf exibindo somente uma linha, mas isso não é correto, pois a SQL retorna todas as linhas.
Vlw
Pode usar o seguinte SQL:
SELECT camposPai, camposFilho FROM pai p
LEFT JOIN filho f ON p.id = f.id_pai AND (f.data = (SELECT MAX(f1.data) FROM filho f1 WHERE f1.id_pai = p.id))
Obs: considerei que o campo que define “último” é o campo data da tabela filho. Esta sintaxe pode váriar dependendo do banco de dados, precisa conferir como o “=” se comporta com selects de grupo aninhado.
Obrigado samuel.grigolato!
Vou testar!
Você sabe como ficaria usando o criteria?
Vlw
Está falando de Hibernate?
Sei que com HQL pode aninhar SELECTS da mesma forma, com Criteria talvez tenha como, mas não vou saber exemplificar.