Hibernate - Traduzindo SQL para HQL

Estou realizando essa consulta no Postgres e o resultado aparece corretamente

select * from Ternario t, Curso c, Centro ce where ce.codcentro = c.codcentro and c.codcurso = t.codcurso and ce.codcentro = 1;

Mais no hibernate estou fazendo assim


    public List<Ternario> listarquantProjCentroCcs() throws Exception {
        s = HibernateUtil.getSessionFactory().openSession();
        q = s.createQuery("from Ternario  t, Curso c, Centro ce where ce.codcentro = c.codcentro and  c.codcurso = t.codcurso and ce.codcentro = 1");
        return q.list();
    }
org.hibernate.QueryException: could not resolve property: codcentro of: br.com.projetopesquisa.entity.Centro [from br.com.projetopesquisa.entity.Ternario  t, br.com.projetopesquisa.entity.Curso c, br.com.projetopesquisa.entity.Centro ce where ce.codcentro = c.codcentro and  c.codcurso = t.codcurso and ce.codcentro = 1]
	org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)
	org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38)
	org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1358)
	org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)
	org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:386)
	org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:566)
	org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:241)
	org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:188)
	org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)
	org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90)
	org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:728)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1216)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4041)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3525)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1762)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1687)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1687)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
	org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
	org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
	org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
	org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
	org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
	org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
	org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
	org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
	org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
	org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
	br.com.projetopesquisa.persistence.QuadroDemonstrativoDao.listarquantProjCentroCcs(QuadroDemonstrativoDao.java:80)
	br.com.projetopesquisa.action.QuadroDemonstrativoAction.prepare(QuadroDemonstrativoAction.java:45)
	com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:134)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
	org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

Parece que não estou fazendo o uso do HQL certo ??

Alguem pode mudar essa linha para o HQL !

select * from Ternario t, Curso c, Centro ce where ce.codcentro = c.codcentro and c.codcurso = t.codcurso and ce.codcentro = 1;

Amigo se eu entedi bem isso irá da Certo.

q = s.createQuery("from Ternario t where t.curso.centro.codCentro = 1);  

Coloque o resultado depois de testar.

[quote=igoorgalvao]Amigo se eu entedi bem isso irá da Certo.

q = s.createQuery("from Ternario t where t.curso.centro.codCentro = 1);  

Coloque o resultado depois de testar.[/quote]

Deu esse erro

org.hibernate.QueryException: could not resolve property: codCentro of: br.com.projetopesquisa.entity.Centro [from br.com.projetopesquisa.entity.Ternario t where t.curso.centro.codCentro = 1]
org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)
org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38)
org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1358)
org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)
org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:386)
org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:566)
org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:241)
org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:188)
org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)
org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90)
org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:728)
org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1216)
org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4041)
org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3525)
org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1762)
org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
br.com.projetopesquisa.persistence.QuadroDemonstrativoDao.listarquantProjCentroCcs(QuadroDemonstrativoDao.java:80)
br.com.projetopesquisa.action.QuadroDemonstrativoAction.prepare(QuadroDemonstrativoAction.java:45)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:134)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

Voce tem alguma apostila falando de HQL ??

Tenho não.

deixa eu te explicar a o código que te mandei

 q = s.createQuery("from Ternario t where t.curso.centro.codCentro = 1);    

Aqui você tem que fazer tudo via objeto. Para isso funcionar vc deve ter a seguinte estrutura:

class Ternario{
Curso curso;

}
class Curso{
Centro centro;
}
class Centro{
String ou Integer codCentro;
}

Eu não coloquei os getter e setter e os modificadores de acesso.

Para funcionar dentro da class centro você deve ter o atributo codCentro.

[quote=igoorgalvao]Tenho não.

deixa eu te explicar a o código que te mandei

 q = s.createQuery("from Ternario t where t.curso.centro.codCentro = 1);    

Aqui você tem que fazer tudo via objeto. Para isso funcionar vc deve ter a seguinte estrutura:

class Ternario{
Curso curso;

}
class Curso{
Centro centro;
}
class Centro{
String ou Integer codCentro;
}

Eu não coloquei os getter e setter e os modificadores de acesso.

Para funcionar dentro da class centro você deve ter o atributo codCentro.

[/quote]

Eu fiz o que voce falou mais agora deu esse erro

javax.servlet.ServletException: Filter execution threw an exception
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

java.lang.ExceptionInInitializerError
	br.com.projetopesquisa.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:23)
	br.com.projetopesquisa.persistence.QuadroDemonstrativoDao.listarProfessorDoutor(QuadroDemonstrativoDao.java:23)
	br.com.projetopesquisa.action.QuadroDemonstrativoAction.prepare(QuadroDemonstrativoAction.java:36)
	com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:134)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
	org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

java.lang.OutOfMemoryError: PermGen space
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java:620)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java:620)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java:620)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java:620)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Vou ter que ver o que faço …
Mais voce tem algum material ae para eu da uma estudada ???

Infelizmente tenho não aprendi sozinho.

Amigo o erro que deu agora foi porque o PermGen space estouro. Esse é um espaço na memória.

Tente aumentar ele.

No eclipse:

window -> preferences -> installed JReS

Edita a JRE e coloca Vm arguments:

-XX:PermSize=128M -XX:MaxPermSize=256M

[quote=igoorgalvao]Infelizmente tenho não aprendi sozinho.

Amigo o erro que deu agora foi porque o PermGen space estouro. Esse é um espaço na memória.

Tente aumentar ele.

No eclipse:

window -> preferences -> installed JReS

Edita a JRE e coloca Vm arguments:

-XX:PermSize=128M -XX:MaxPermSize=256M [/quote]

Estou usando NetBeans

Mais aqui isso não era para acontecer certo ??

[quote=tonydesign]
Mais aqui isso não era para acontecer certo ??[/quote]
Se estás a fazer deploys sucessivos sem reiniciar o servidor é “normal” que ao fim de algum tempo isso possa acontecer.