Pessoal estou em uma dúvida tremenda aqui.
Exemplo: Noticia(1)—(n)Imagem(1)—(n)TipoImagem
Daí tenho o seguinte HQL
session.createQuery("select n from Noticia as n inner join n.imagem inner join n.imagem.tipoimagem order by n.codigo desc")
No meu entendimento, implicitamente o hibernate vai fazer apenas um select, mas quando olho no catalina.out aparece vários select relacionado a essa consulta ai, pq ele faz esse vários selects ?
Hibernate:
select
noticia0_.codigo as codigo5_,
noticia0_.codigo_tiponoticia as codigo2_5_,
noticia0_.corpo as corpo5_,
noticia0_.cpf_usr as cpf4_5_,
noticia0_.data as data5_,
noticia0_.destacada as destacada5_,
noticia0_.fonte as fonte5_,
noticia0_.codigo_imagem as codigo11_5_,
noticia0_.publicada as publicada5_,
noticia0_.resumo as resumo5_,
noticia0_.titulo as titulo5_
from
site.noticia noticia0_
inner join
public.imagem imagem1_
on noticia0_.codigo_imagem=imagem1_.codigo
inner join
public.imagem imagem2_
on noticia0_.codigo_imagem=imagem2_.codigo
inner join
public.tipoimagem tipoimagem3_
on imagem2_.codigo_tipoimagem=tipoimagem3_.codigo
order by
noticia0_.codigo desc limit ?
Hibernate:
select
imagem0_.codigo as codigo2_1_,
imagem0_.altura as altura2_1_,
imagem0_.cpf_usr as cpf3_2_1_,
imagem0_.fotografo as fotografo2_1_,
imagem0_.largura as largura2_1_,
imagem0_.nome as nome2_1_,
imagem0_.possui_original as possui7_2_1_,
imagem0_.codigo_tipoimagem as codigo9_2_1_,
imagem0_.titulo as titulo2_1_,
tipoimagem1_.codigo as codigo6_0_,
tipoimagem1_.cpf_usr as cpf2_6_0_,
tipoimagem1_.descricao as descricao6_0_,
tipoimagem1_.diretorio as diretorio6_0_,
tipoimagem1_.publico as publico6_0_
from
public.imagem imagem0_
left outer join
public.tipoimagem tipoimagem1_
on imagem0_.codigo_tipoimagem=tipoimagem1_.codigo
where
imagem0_.codigo=?
Hibernate:
select
imagem0_.codigo as codigo2_1_,
imagem0_.altura as altura2_1_,
imagem0_.cpf_usr as cpf3_2_1_,
imagem0_.fotografo as fotografo2_1_,
imagem0_.largura as largura2_1_,
imagem0_.nome as nome2_1_,
imagem0_.possui_original as possui7_2_1_,
imagem0_.codigo_tipoimagem as codigo9_2_1_,
imagem0_.titulo as titulo2_1_,
tipoimagem1_.codigo as codigo6_0_,
tipoimagem1_.cpf_usr as cpf2_6_0_,
tipoimagem1_.descricao as descricao6_0_,
tipoimagem1_.diretorio as diretorio6_0_,
tipoimagem1_.publico as publico6_0_
from
public.imagem imagem0_
left outer join
public.tipoimagem tipoimagem1_
on imagem0_.codigo_tipoimagem=tipoimagem1_.codigo
where
imagem0_.codigo=?
Hibernate:
select
imagem0_.codigo as codigo2_1_,
imagem0_.altura as altura2_1_,
imagem0_.cpf_usr as cpf3_2_1_,
imagem0_.fotografo as fotografo2_1_,
imagem0_.largura as largura2_1_,
imagem0_.nome as nome2_1_,
imagem0_.possui_original as possui7_2_1_,
imagem0_.codigo_tipoimagem as codigo9_2_1_,
imagem0_.titulo as titulo2_1_,
tipoimagem1_.codigo as codigo6_0_,
tipoimagem1_.cpf_usr as cpf2_6_0_,
tipoimagem1_.descricao as descricao6_0_,
tipoimagem1_.diretorio as diretorio6_0_,
tipoimagem1_.publico as publico6_0_
from
public.imagem imagem0_
left outer join
public.tipoimagem tipoimagem1_
on imagem0_.codigo_tipoimagem=tipoimagem1_.codigo
where
imagem0_.codigo=?
Hibernate:
select
imagem0_.codigo as codigo2_1_,
imagem0_.altura as altura2_1_,
imagem0_.cpf_usr as cpf3_2_1_,
imagem0_.fotografo as fotografo2_1_,
imagem0_.largura as largura2_1_,
imagem0_.nome as nome2_1_,
imagem0_.possui_original as possui7_2_1_,
imagem0_.codigo_tipoimagem as codigo9_2_1_,
imagem0_.titulo as titulo2_1_,
tipoimagem1_.codigo as codigo6_0_,
tipoimagem1_.cpf_usr as cpf2_6_0_,
tipoimagem1_.descricao as descricao6_0_,
tipoimagem1_.diretorio as diretorio6_0_,
tipoimagem1_.publico as publico6_0_
from
public.imagem imagem0_
left outer join
public.tipoimagem tipoimagem1_
on imagem0_.codigo_tipoimagem=tipoimagem1_.codigo
where
imagem0_.codigo=?
Hibernate:
select
imagem0_.codigo as codigo2_1_,
imagem0_.altura as altura2_1_,
imagem0_.cpf_usr as cpf3_2_1_,
imagem0_.fotografo as fotografo2_1_,
imagem0_.largura as largura2_1_,
imagem0_.nome as nome2_1_,
imagem0_.possui_original as possui7_2_1_,
imagem0_.codigo_tipoimagem as codigo9_2_1_,
imagem0_.titulo as titulo2_1_,
tipoimagem1_.codigo as codigo6_0_,
tipoimagem1_.cpf_usr as cpf2_6_0_,
tipoimagem1_.descricao as descricao6_0_,
tipoimagem1_.diretorio as diretorio6_0_,
tipoimagem1_.publico as publico6_0_
from
public.imagem imagem0_
left outer join
public.tipoimagem tipoimagem1_
on imagem0_.codigo_tipoimagem=tipoimagem1_.codigo
where
imagem0_.codigo=?