Problema Join Simples

3 respostas
2

Pessoall,

Seguinte Tenho duas tabelas DiariaBean e GarantiaBean.

A DiariaBean não tem nada e a GarantiaBean tem.

Queria fazer um Right join no hibernate como faço?

Tem isso em HQL abaixo mais nao rola:

Query select = (Query) session.createQuery("from DiariaBean d right join GarantiaBean g on d.idGarantia = g.idGarantia");

Existe a possibilidade via annotation ou via criteria fazer isso? se não qual seria a possivel solução?

Obrigado.

3 Respostas

thiago.correa

Tenta fazer ao contrário o seu join:

Query select = (Query) session.createQuery("from GarantiaBean g left join DiariaBean d on d.idGarantia = g.idGarantia");
2

Não foi… Remodelei o banco. Foi o jeito, to correndo com isso aqui.

Abraço amigo.

Ahh… gostei da sua frase [;)]

N

Só para constar. Nesse endereço: http://www.javalobby.org/articles/hibernatequery102/?source=archives . Encontrei esse trecho:

Joining tables

When writing HQL queries, join clauses are often necessary to optimise the query using a “left join fetch” clause, as in the following example (I discuss this type of optimisation in another article.)

from Sale sale
where sale.date > :startDate
left join fetch sale.product

When using the criteria API, you can do the same thing using the setFetchMode() function :

session.createCriteria(Sale.class)

.setFetchMode(product,FetchMode.EAGER)

.list();

Espero que ajude em futuros problemas.

Criado 28 de maio de 2009
Ultima resposta 28 de mai. de 2009
Respostas 3
Participantes 3