Alguém sabe me dizer o que estou fazendo de errado neste hql, pois não funfa… me retorna a seguinte exception:
12:13:56,999 ERROR [PARSER] line 1:122: unexpected token: on
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, column 122 [from br.mil.eb.dgp.sirf3.negocio.entidade.militar.CursoDgp cursoDgp inner join EstabelecimentoCurso estabelecimentoCurso on estabelecimentoCurso.CURSO_COD = cursoDgp.CODIGO WHERE estabelecimentoCurso.ORGAO_COD = :CODOM ORDER BY 2]
Nos forums que li, todos usam a palavra chave ON para fazer inner join no HQL…
Minha HQL
public static final String HQL_CURSOS_ESTAGIOS_MILITARES_POR_OM =
"from CursoDgp cursoDgp " +
"inner join EstabelecimentoCurso estabelecimentoCurso " +
"on estabelecimentoCurso.CURSO_COD = cursoDgp.CODIGO " +
"WHERE estabelecimentoCurso.ORGAO_COD = :CODOM " +
"ORDER BY 2";
Método que chama a consulta
public List<CursoDgp> cursosEstagiosMilitaresPorOm(Orgao orgao){
Query query = hibernateSessionSirf3.createQuery(HQL_CURSOS_ESTAGIOS_MILITARES_POR_OM);
query.setString("CODOM", orgao.getCodom());
return (List<CursoDgp>)query.list();
}
Só pra constar, este é o sql que executei no banco e retorna os resultados tranquilo
SELECT CD.CODIGO, CD.DESC_CURSO
FROM RH_QUADRO.CURSO_DGP CD
INNER JOIN RH_QUADRO.ESTABELECIMENTO_CURSO EC ON EC.CURSO_COD = CD.CODIGO
WHERE EC.ORGAO_COD = 24679
ORDER BY 2