java - Using inner join on hibernate returning token uknown -


i'm having trouble hibernate. i'm trying create query return number of consults foreach medical ward, run sql on pgadmin , well, when tried create same sql on hibernate, has return erros. here code.

sql:

select a.cod_ala ,count(cod_consulta) max consulta c      inner join medico m on m.cod_medico = c.cod_medico     inner join ala on a.cod_ala = m.cod_ala group a.cod_ala   

java:

public void getconsultasala() {     string sql = "select a.cod_ala, count(cod_consulta) max consulta c"      +" inner join medico m on m.cod_medico = c.cod_medico"                +" inner join ala on a.cod_ala = m.cod_ala"     +" group a.cod_ala";        query query;     system.out.println(sql);     this.session = generalcontroller.getsession();      query = this.session.createquery(sql);     list list = query.list();     int = 0;     while(list.iterator().hasnext()) {         system.out.println(list.get(i++));     }  } 

errors:

jul 01, 2015 8:43:14 pm org.hibernate.hql.internal.ast.errorcounter reporterror error: line 1:149: unexpected token: on jul 01, 2015 8:43:14 pm org.hibernate.hql.internal.ast.errorcounter reporterror error: line 1:149: unexpected token: on line 1:149: unexpected token: on     @ org.hibernate.hql.internal.antlr.hqlbaseparser.fromjoin(hqlbaseparser.java:1694)     @ org.hibernate.hql.internal.antlr.hqlbaseparser.fromclause(hqlbaseparser.java:1349)     @ org.hibernate.hql.internal.antlr.hqlbaseparser.selectfrom(hqlbaseparser.java:1055)     @ org.hibernate.hql.internal.antlr.hqlbaseparser.queryrule(hqlbaseparser.java:701)     @ org.hibernate.hql.internal.antlr.hqlbaseparser.selectstatement(hqlbaseparser.java:294)     @ org.hibernate.hql.internal.antlr.hqlbaseparser.statement(hqlbaseparser.java:157)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.parse(querytranslatorimpl.java:266)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.docompile(querytranslatorimpl.java:180)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.compile(querytranslatorimpl.java:136)     @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:105)     @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:80)     @ org.hibernate.engine.query.spi.queryplancache.gethqlqueryplan(queryplancache.java:168)     @ org.hibernate.internal.abstractsessionimpl.gethqlqueryplan(abstractsessionimpl.java:221)     @ org.hibernate.internal.abstractsessionimpl.createquery(abstractsessionimpl.java:199)     @ org.hibernate.internal.sessionimpl.createquery(sessionimpl.java:1778)     @ org.hibernate.control.consultscontroller.getconsultasala(consultscontroller.java:473)     @ org.menu.menuconsulta.menuconsultas(menuconsulta.java:97)     @ org.hibernate.mainapp.menuprincipal(mainapp.java:80)     @ org.hibernate.mainapp.main(mainapp.java:145)  exception in thread "main" org.hibernate.hql.internal.ast.querysyntaxexception: unexpected token: on near line 1, column 98 [select a.cod_ala, count(cod_consulta) max org.model.consulta c inner join medico m on m.cod_medico = c.cod_medico inner join ala on a.cod_ala = m.cod_ala group a.cod_ala]     @ org.hibernate.hql.internal.ast.querysyntaxexception.convert(querysyntaxexception.java:54)     @ org.hibernate.hql.internal.ast.querysyntaxexception.convert(querysyntaxexception.java:47)     @ org.hibernate.hql.internal.ast.errorcounter.throwqueryexception(errorcounter.java:79)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.parse(querytranslatorimpl.java:276)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.docompile(querytranslatorimpl.java:180)     @ org.hibernate.hql.internal.ast.querytranslatorimpl.compile(querytranslatorimpl.java:136)     @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:105)     @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:80)     @ org.hibernate.engine.query.spi.queryplancache.gethqlqueryplan(queryplancache.java:168)     @ org.hibernate.internal.abstractsessionimpl.gethqlqueryplan(abstractsessionimpl.java:221)     @ org.hibernate.internal.abstractsessionimpl.createquery(abstractsessionimpl.java:199)     @ org.hibernate.internal.sessionimpl.createquery(sessionimpl.java:1778)     @ org.hibernate.control.consultscontroller.getconsultasala(consultscontroller.java:473)     @ org.menu.menuconsulta.menuconsultas(menuconsulta.java:97)     @ org.hibernate.mainapp.menuprincipal(mainapp.java:80)     @ org.hibernate.mainapp.main(mainapp.java:145) 

ps: sorry bad grammar, english second language

there no "on" inner join in hibernate; use entity , not actual table in hibernate.joins can done between associated entities

example:

select u user u inner join u.name name where..  

the on clause unnecessary, because hibernate knows mapping of association(ie onetoone/manytoone etc).


Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -