Olá, estou com um problema no hibernate 3.6.10.Final, quando rodo a query “from Pessoa pes inner join pes.localNascimento local where pes.localNascimento.nome = 'test’” no hibernate 3.3.1.GA ele gera está query:
SELECT …
FROM PESSOA pessoa0_
INNER JOIN MUNICIPIO municipio1_
ON pessoa0_.LOCNASCIMENTO =municipio1_.CODMUNICIPIO
WHERE municipio1_.NOMMUNICIPIO=‘test’
Rodando a mesma query no hibernate 3.6.10.Final ele gerou a seguinte query:
SELECT …
FROM PESSOA pessoa0_
INNER JOIN MUNICIPIO municipio1_
ON pessoa0_.LOCNASCIMENTO=municipio1_.CODMUNICIPIO,
MUNICIPIO municipio2_
WHERE pessoa0_.LOCNASCIMENTO=municipio2_.CODMUNICIPIO
AND municipio2_.NOMMUNICIPIO=‘test’
Na versão 3.3.1.GA ele gerou um inner join criando o alias municipio1, já na versão 3.6.1.Final ele criou um inner join com o alias municipio1 e uma ligação clássica com o alias municipio2.
Alguém sabe o por que desta diferença entre versões ? Já procurei nos changelog e não achei nada. Infelizmente em nosso projeto temos mais 100 classes e muitas delas o desenvolvedor vez o inner join mas não utilizou o alias acabando em utilizar a chamada direta ao atributo.
