Erro ao criar hql, sql

1 resposta
hqlsql
L

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();
}

1 Resposta

darlan_machado

Segundo este trecho, a classe Orientador não possui nenhum atributo chamado usuario.

Criado 8 de abril de 2019
Ultima resposta 8 de abr. de 2019
Respostas 1
Participantes 2