The HQL statement is roughly as follows
Select T, case when t.targettype=0 then
(select A.name from Marketapp a where a.id = T.target)
Else "end
JSP reported the following error
Java.lang.NullPointerException at Org.hibernate.hql.internal.ast.tree.CaseNode.getDataType (casenode.java:39) A T Org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause (selectclause.java:152) at Org.hibernate.hql.internal.ast.HqlSqlWalker.useSelectClause (hqlsqlwalker.java:859) at Org.hibernate.hql.internal.ast.HqlSqlWalker.processQuery (hqlsqlwalker.java:649) at Org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query (hqlsqlbasewalker.java:663) at Org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement (hqlsqlbasewalker.java:299) at Org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement (hqlsqlbasewalker.java:247) at Org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze (querytranslatorimpl.java:248) at Org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile (querytranslatorimpl.java:183) at
Org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile (querytranslatorimpl.java:136)At Org.hibernate.engine.query.spi.HQLQueryPlan. (hqlqueryplan.java:105) at Org.hibernate.engine.query.spi.HQLQueryPlan.
(hqlqueryplan.java:80) at Org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan (queryplancache.java:168) At Org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan (abstractsessionimpl.java:221) at Org.hibernate.int Ernal. Abstractsessionimpl.createquery (abstractsessionimpl.java:199) at Org.hibernate.internal.SessionImpl.createQuery ( sessionimpl.java:1777)
The background console reported the following error
[2014-06-12 09:29:37 ERROR] [Http-8080-3] Org.hibernate.hql.internal.ast.ErrorCounter.reportError (50) | <ast>:0:0: Unexpected ast node:query <ast>:0:0: Unexpected ast node:query at Org.hibernate.hql.inter NAL.ANTLR.HQLSQLBASEWALKER.EXPR (hqlsqlbasewalker.java:1363) at ORG.HIBERNATE.HQL.INTERNAL.ANTLR.HQLSQLBASEWALKER.CASEEXPR (hqlsqlbasewalker.java:5074) at ORG.HIBERNATE.HQL.INTERNAL.ANTLR.HQLSQLBASEWALKER.ARITHMETICEXPR (hqlsqlbasewalker.java:3199) at ORG.HIBERNATE.HQL.INTERNAL.ANTLR.HQLSQLBASEWALKER.SELECTEXPR (hqlsqlbasewalker.java:2332) at Org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExprList (hqlsqlbasewalker.java:2145) at Org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectClause (hqlsqlbasewalker.java:1451) at Org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query (hqlsqlbasewalker.java:571) at Org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement (hqlsqlbasewalker.java:299)
Org.hibernate.hql.internal.ast.tree.CaseNode.getDataType (casenode.java:39) can see the error is because hibernate do not know what type of subquery returned, So the error, then forced to let it know, for example, this example returns a string type, so you can change to the following
Select T, case when t.targettype=0 then
(select A.name from Marketapp a where a.id = t.target) | | ')
Else ' end