Estou com problema ao executar a seguinte query.
SELECT O FROM Orientador O
INNER JOIN O.Usuario U
INNER JOIN O.Matricula M
INNER JOIN M.Vagas V
INNER JOIN V.Turmas T
INNER JOIN T.Autorizacoes A
WHERE (A.id = :id_autorizacao) OR (U.id = :id_orientador) OR (O.situacao = :situacao)
Esse é o erro
10:03:03,103 ERROR [org.jboss.as.ejb3.invocation] (default task-5) WFLYEJB0034: EJB Invocation failed on component OrientadorService for method public abstract java.util.List br.gov.mg.pmmg.educacao.sige.negocio.IOrientadorService.pesquisar(br.gov.mg.pmmg.educacao.sige.entidade.Autorizacao,br.gov.mg.pmmg.educacao.sige.orientador.Orientador) throws br.gov.mg.pmmg.framework.util.excecao.ExcecaoValidacao: javax.ejb.EJBException: java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: Usuario of: br.gov.mg.pmmg.educacao.sige.orientador.Orientador [SELECT O FROM br.gov.mg.pmmg.educacao.sige.orientador.Orientador O INNER JOIN O.Usuario U INNER JOIN O.Matricula M INNER JOIN M.Vagas V INNER JOIN V.Turmas T INNER JOIN T.Autorizacoes A WHERE (A.id = :id_autorizacao) OR (U.id = :id_orientador) OR (O.situacao = :situacao)]
Já tentei muitas coisas mas não funcionou.
O codigo em java:
public List<Orientador> pesquisar(Autorizacao autorizacao, Orientador orientador) throws ExcecaoValidacao {
StringBuilder hql = new StringBuilder();
hql.append("SELECT O FROM Orientador O ");
hql.append("INNER JOIN O.Usuario U ");
hql.append("INNER JOIN O.Matricula M ");
hql.append("INNER JOIN M.Vagas V ");
hql.append("INNER JOIN V.Turmas T ");
hql.append("INNER JOIN T.Autorizacoes A ");
hql.append("WHERE (A.id = :id_autorizacao) OR (U.id = :id_orientador) OR (O.situacao = :situacao)");
return entityManager.createQuery(hql.toString())
.setParameter("id_autorizacao", autorizacao.getId())
.setParameter("id_orientador", Long.valueOf(orientador.getOrientador().getIdentificador()))
.setParameter("situacao", orientador.getSituacao())
.getResultList();
}