Como eu faço para rodar essa query usando Hibernate? Do jeito que tá, tá dando erro de token desconhecido(on) ele não aceita o ON do join, porque isso não é HQL e como é Hibernate, ele dá erro. Isso é meu aprendizado e meu trampo ao mesmo tempo e a portya da rua já tá aberta.
public List<Escola> findAll() {
Query query = getEntityManager().createQuery("select distinct e.nome " +
"from " +
"pessoa p inner join professor f on (p.idpessoa = f.idpessoa) " +
"inner join matricula m on (m.idprofessor = f.idprofessor) " +
"inner join escola e on (e.idescola = m.idescola)" +
"where m.situacao = 'A'");
return (List<Escola>) query.getResultList();
}
("select distinct e.nome from " +
"pessoa p, professor f, mtricula m, escola e " +
"where p.idpessoa = f.idpessoa and m.idprofessor = f.idprofessor " +
"and e.idescola = m.idescola where m.situacao = 'A'";
[quote=pjava]Como eu faço para rodar essa query usando Hibernate? Do jeito que tá, tá dando erro de token desconhecido(on) ele não aceita o ON do join, porque isso não é HQL e como é Hibernate, ele dá erro. Isso é meu aprendizado e meu trampo ao mesmo tempo e a portya da rua já tá aberta.
public List<Escola> findAll() {
Query query = getEntityManager().createQuery("select distinct e.nome " +
"from " +
"pessoa p inner join professor f on (p.idpessoa = f.idpessoa) " +
"inner join matricula m on (m.idprofessor = f.idprofessor) " +
"inner join escola e on (e.idescola = m.idescola)" +
"where m.situacao = 'A'");
return (List<Escola>) query.getResultList();
}[/quote]
Dê um espaço antes do where, pois da forma como está ,ele ficará colado na string anterior e não será reconhecido ao ser executado.
Além disso, se você quer executar SQL nativo tem que usar o createSQLQuery ao invés do createQuery.
desculpa, foi burrisse minha… acabei colocando 2 where na minha resposta…
agora tenta isso:
"select distinct e.nome from " +
"pessoa p, professor f, mtricula m, escola e " +
"where p.idpessoa = f.idpessoa and m.idprofessor = f.idprofessor " +
"and e.idescola = m.idescola and m.situacao = 'A'";
[quote]pessoa is not mapped [select distinct e.nome from pessoa p, professor f, mtricula m, escola e where p.idpessoa = f.idpessoa and m.idprofessor = f.idprofessor and e.idescola = m.idescola and m.situacao = ‘A’]
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:616)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:95)
at br.com.mosaicodigital.modelo.ListaEscola.findAll(ListaEscola.java:60)
at TestaTudo.main(TestaTudo.java:19)[/quote]