Estou com um problema em fazer um hibernate criteria de duas tabelas “irmãs”.
Ou seja, de duas tabelas que tenham o mesmo pai.
Exemplo:
Tabela Principal: Carro
Tabela Filha 1: Revisoes do Carro
Tabela Filha 2: Proprietários do Carro
Explicando, a tabela revisoes tem um campo que é a chave da tabela principal.
E a tabela de proprietarios tb tem um campo que é chave da tabela principal.
Gostaria de fazer o join destas tabelas por estes campos.
quais informacoes ao certo voce deseja exibir? digo isto porque dependendo da demanda de dados seria interessante voce utilizar um DTO.
F
flahviocastro
Na verdade o que eu queria seria os dados da tabela pai.
Seria um select assim:
na verdade, acho que nao precisa do primeiro clausula do where:
faelcavalcanti
vamos lá fábio, foi mal a demora por corresponder.
mas quanto a sua query, acho que percebi que você necessita de todos os carros que tenham tidos pelo menos uma revisao e passado por um proprietario? caso a resposta seja sim, basicamente a query seria a mesma que vc a utiliza, da seguinte forma:
select c
from Carro c
inner join Proprietario p
on p.carro = c
inner join Revisao r
on r.carro = c
where -- seus filtros em especifico caso necessario
caso voce queira enfatizar o caso de nao ter tido revisoes, utilize left join para isto.
seguem abaixo algumas fontes que poderão te ajudar e complementar estudo no uso de critérias abaixo:
vamos lá fábio, foi mal a demora por corresponder.
mas quanto a sua query, acho que percebi que você necessita de todos os carros que tenham tidos pelo menos uma revisao e passado por um proprietario? caso a resposta seja sim, basicamente a query seria a mesma que vc a utiliza, da seguinte forma:
select c
from Carro c
inner join Proprietario p
on p.carro = c
inner join Revisao r
on r.carro = c
where -- seus filtros em especifico caso necessario
caso voce queira enfatizar o caso de nao ter tido revisoes, utilize left join para isto.
Velho, é exatamente esta query que quero fazer, porém queria fazer ela utilizando Criteria.
Já tentei duas abordagens:
começar o criteria a partir da classe Carro e depois tentar adicionar os dois joins. Não consegui adicionar os joins.
começar o criteria a partir da classe Revisao ou Proprietario e depois tentar adicionar os outros joins. Também não consegui.
Já li e re-li a documentacao do hibernate.
Li também as referencias que vc me passou.
Mas em nenhum dos casos, há uma explicacao de como fazer estes joins.
faelcavalcanti
verifique neste link, na seção 15.7 um exemplo de uso ou em associações.
existe também este site que poderá te ajudar com alguns exemplos no uso do hibernate, assim como critéria no item 22.