*I have a test case which I will add shortly. here: * [https://github.com/archiecobbs/hibernate-test-case-templates/tree/HHH-16308|https://github.com/archiecobbs/hibernate-test-case-templates/tree/HHH-16308|smart-link] In short, this works:
{code:java}cb.construct(NameHolder.class, e.get(Employee_.name));{code}
but this throws {{NullPointerException}}:
{code:java}cb.construct(NameHolder.class, cb.function("IFNULL", String.class, e.get(Employee_.name), cb.literal("(Unknown)")));{code}
The exception looks like this:
{noformat}java.lang.NullPointerException at org.hibernate.hql.internal.NameGenerator.generateColumnNames(NameGenerator.java:27) at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.generateColumnNames(SessionFactoryHelper.java:435) at org.hibernate.hql.internal.ast.tree.SelectClause.initializeColumnNames(SelectClause.java:308) at org.hibernate.hql.internal.ast.tree.SelectClause.finishInitialization(SelectClause.java:298) at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:268) at org.hibernate.hql.internal.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:1039) at org.hibernate.hql.internal.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:807) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:703) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:339) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:287) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:276) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:112) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73) at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162) at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:811) at org.hibernate.query.criteria.internal.CriteriaQueryImpl$1.buildCompiledQuery(CriteriaQueryImpl.java:314) at org.hibernate.query.criteria.internal.compile.CriteriaCompiler.compile(CriteriaCompiler.java:170) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:774) at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23) at org.hibernate.bugs.JPAUnitTestCase.hhh123Test(JPAUnitTestCase.java:56){noformat}
Note, this may be related to [this similar bug reported on stackoverflow|https://stackoverflow.com/q/72140973/263801]. |
|