Olá pessoal, tenho o seguinte caso:
Meu modelo Trilha tenho a seguinte anotação
@JoinColumn(name = "triEmpresa", referencedColumnName = "idEmpresa", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Empresa empresa;
Meu TrilhaDAO , tenho o seguinte select:
@SuppressWarnings("unchecked")
public List<Trilha> toXML() {
System.out.println("Iniciou");
Query query = manager.createQuery("select t FROM Trilha t", Trilha.class);
return query.getResultList();
}
Meu resultado é esse:
<trilhas>
<trilha>
<empresa>
<empNome>DLOGICA</empNome>
<empVideo>Aqui vem o vídeo</empVideo>
<idEmpresa>4</idEmpresa>
</empresa>
<triAula>0</triAula>
<triCurso>0</triCurso>
<triDesc>Finanças</triDesc>
<triDescr>Curso de Finanças</triDescr>
<trilhaPK>
<idTrilha>1</idTrilha>
<triEmpresa>4</triEmpresa>
</trilhaPK>
</trilha>
Minha dúvida é a seguinte toda vez que eu executo o select para o resultado o hibernate executa 2 selects e eu queria apenas o select de Trilha, como posso fazer isso ?
Se eu remover o @ManyToOne funciona mas acho que não deva ser o correto, alguma alternativa, abaixo a query executada no hibernate !
Hibernate:
select
trilha0_.idTrilha as idTrilha1_9_,
trilha0_.triEmpresa as triEmpre2_9_,
trilha0_.triAula as triAula3_9_,
trilha0_.triCurso as triCurso4_9_,
trilha0_.triDesc as triDesc5_9_,
trilha0_.triDescr as triDescr6_9_,
trilha0_.triDtcad as triDtcad7_9_,
trilha0_.triImagem as triImage8_9_,
trilha0_.triTipo as triTipo9_9_,
trilha0_.triTrilha as triTril10_9_
from
Trilha trilha0_
Hibernate:
select
empresa0_.idEmpresa as idEmpres1_2_0_,
empresa0_.empNome as empNome2_2_0_,
empresa0_.empVideo as empVideo3_2_0_
from
Empresa empresa0_
where
empresa0_.idEmpresa=?