Dúvida HQL - No data type for node: org.hibernate.hql.ast.tree.CaseNode

Bom dia amigos,

Estou com um problema ao tentar executar uma query com “case when else end” usando hibernate.
Segue a query (o sql roda direitinho no BD):

select distinct situacao, matricula, nome, ordenacao as ord, 
case when ord <> '' then ord else '00' end as ord2
from aluno
order by ord2 asc, nome

Segue a mensagem de erro exibida ao executá-la:

java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.CaseNode 
 \-[CASE] CaseNode: 'CASE'
    +-[WHEN] SqlNode: 'WHEN'
    |  +-[NE] BinaryLogicOperatorNode: '<>'
    |  |  +-[IDENT] IdentNode: 'ord' {originalText=ord}
    |  |  \-[QUOTED_STRING] LiteralNode: ''''
    |  \-[IDENT] IdentNode: 'ord' {originalText=ord}
    \-[ELSE] SqlNode: 'ELSE'
       \-[QUOTED_STRING] LiteralNode: ''00''

        at org.hibernate.hql.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:145)
        at org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:705)
        at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:529)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:645)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
        at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
        at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
        at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
        at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
        at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
        at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
        at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
        at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
        at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
        at cetec.sge.hibernate.dao.AlunoDAO.findByGraCsoSerTur(AlunoDAO.java:115)
        at cetec.sge.struts.action.CarregarAlunosNotaCanhotoProfAction.execute(CarregarAlunosNotaCanhotoProfAction.java:51)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

O que será que está errado? :roll:

Hello! Good afternoon!

My problem is the same with yours. I have been searching for the solution of this problem.
Have you already found the solution for this? If you had, can you please share? Thanks

:slight_smile: