Como posso fazer esse outer join no hql? já tentei de todas as formas.
select * from crp_item item left outer join crp_int.TMP_CONTROLE_ITEM_FISCAL tmp
on item.cod_item = tmp.cod_item
where
item.cod_tipo_item = 4
and item.cod_item in ('2000030')
Fácil, primeiro resultado -[google] outer join hql[/google]
C
clone_zealot
Tá ai a construção de um outer join no HQL
select um.*, dois.* from tabelaUm um left outer join tabelaDois dois where um.coluna = dois.coluna and um.outraColuna = 4 and um.outraColunaAinda in ('2000030')
jason_bourne
clone_zealot:
Tá ai a construção de um outer join no HQL
select um.*, dois.* from tabelaUm um left outer join tabelaDois dois where um.coluna = dois.coluna and um.outraColuna = 4 and um.outraColunaAinda in ('2000030')
Fazendo isso eu tenho esse erro:
E
ebarros
Ah Junçao eh feita entre objetos e nao entre as classes, ou seja, nao segue a mesma sintaxe da sql que junta tabelas.
Normalmente não eh preciso fazer junções na HQL, pois através dos relacionamentos o hibernate jah faz a junção para vc, ou vc tenha que rever o seu mapeamento ou entao o incio da consulta estah partindo do lugar errado.
mapeamento:
public classe TabelaA{
private Integer id;//+ métodos encapsuladores
private String descricao; //+ métodos encapsuladores
}
public classe TabelaB{
private TabelaA tabelaA; //+ métodos encapsuladores
}
hql:
SELECT t FROM tabelaB t WHERE t.tabelaA.id = 10
Mas caso queira realmente fazer a junção…
SELECT t FROM tabelaB t
LEFT OUTER JOIN t.tabelaA AS tA
WHERE tA.id IN('2000030');