Olá !
Seguinte, estou fazendo uma consulta via criteria que utiliza subquery, porém algo estranho acontece. Quando executo o código, o hibernate simplismente consome com a linha do inner join.
O código que ele gera é o seguinte:
select
<campos>
from
public.cb_artigo this_
where
this_.art_cod in (
select
this0__.art_cod as y0_
from
public.cb_artigo_tag this0__
where
cbtag1_.tag_nome=?
)
Como pode ser visto, no where do subselect é feito: cbtag1_.tag_nome = ?, só que o cbtag1_ deveria ter sido declarado no Join, por exemplo: … inner join public.cb_tag cbtag1_ , mas como o hibernate sumui com o join ele não aparece, daí dá erro na query.
Se eu pego o mesmo código (java) deste subselect e não o utilizar como subselect e sim como um select normal, o hibernate coloca o join lá bonitinho…
Alguém já passou por isso ? Tem como arrumar isso ?