Boa noite galera, não sei se postei no lugar correto, espero que sim.
Possuo um HQL que quando o relacionamento é null, ele não me retorna o dado, e preciso que seja mostrado, segue:
Meu select ficou assim:
E o dao:
currentSession = HibernateUtil.getSessionFactory().getCurrentSession();
Query query = currentSession.createQuery("SELECT vis.vis_nome AS vis_nome, vis.vis_empresa AS vis_empresa, vis.cid_id.cid_nome AS cid_nome, vis.cid_id.est_id.est_sigla AS est_sigla, vis.cid_id_emp.cid_nome AS cid_nome_emp, vis.cid_id_emp.est_id.est_sigla AS est_sigla_emp, vis.vis_cadastro AS vis_cadastro, visi.visi_entrada AS visi_entrada, visi.visi_saida AS visi_saida, visi.visi_motivo AS visi_motivo FROM Visitante AS vis, Visita AS visi WHERE visi.visi_entrada is null OR visi.visi_entrada = (select max(visii.visi_entrada) from Visita visii where visii.vis_id = vis.vis_id)");
query.setResultTransformer(Transformers.aliasToBean(RelVisitante.class));
return (List<RelVisitante>) query.list();
Reparem que eu faço a conversão do resultado dessa query, para uma outra classe.
O meu problema está no relacionamento do vis.cid_id.
Esse meu vis.cid_id é um objeto Cidade, porém vejam que eu seleciono o vis.cid_id.cid_nome que o retorno é uma String, e na minha nova classe está correto.
Eu recebo os dados corretamente na nova classe, o problema é que esse objeto cid_id pode ser NULL no banco, e quando esse objeto é NULL o banco não retorna NADA dessa linha, fazendo com que eu perca esse dado, e eu preciso receber esse dado mesmo ele sendo NULL…
Alguém tem alguma solução para esse caso?
Obs: Eu não retorno o objeto Cidade porque essa nova classe eu passo para o JasperReports, e do modo que eu montei, esse campo Cidade precisa ser o nome String.
Obrigado desde já!
Abraço!