Estou tentando executar uma query HQL mas a inteligencia do hibernate atrapalha um pouco.
Imagine a seguinte estrutura de classes:
A.getId_A()
A.getName()
A.getB() >> returna a classe B
B.getId_B()
B.getName()
Se eu executo uma query no formato HQL:
Select A.Id_A, A.Name, A.B.Id_B , A.B.Name, from A,B where B.Id_B = A.B.Id_B(+)
Eu queria que hibernate gerasse o seguinte SQL:
TA >> Tabela A
TB >> Tabela B
Select TA.Id_TA, TA.Nam_TA, TA.Id_TB , TB.Nam_TB from TA,TB where TB.Id_TB = TA.Id_TB(+)
Mas, como eu uso mapeamento de objetos, A.B.Id_B ao invés de A.Id_B, hibernate gera o seguinte SQL:
Select i1.Id_TA, i1.Nam_TA, i1.Id_TB , i2.Nam_TB from TA i1 , TB i2, TA i3 , TB i4 where i2.Id_TB = i1.Id_TB(+) and i3.Id_TB = i4.Id_TB
Não é meu interesse a segunda parte gerada pelo hibernate na clausula where, nem que ele adicione novamente as tabelas TA e TB na clausula FROM.
Alguém sabe como posso fazer para que ele não gere esta duplicidade, ou alguem me sugere alguma outra alternativa que não seja SQL nativo, pois são mais de 150 campos e tornaria minha função dificil de dar manutenção?
[]`s