NullPointerException happens in Hibernate when setting null value as parameter to Query.setParameter() with TemporalType parameter
Issue
NullPointerException happens when setting null value as parameter to Query.setParameter() after migrating their Java EE application running on JBoss EAP 7.4.x (Hibernate 5.3.x) to Jakarta EE application running on JBoss EAP 8.0.x (Hibernate 6.2.x). Note that this NPE issue does not happen with JBoss EAP 7.4.x (Hibernate 5.3.x).
java.lang.NullPointerException
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.internal.BindingTypeHelper.resolveTemporalPrecision(BindingTypeHelper.java:44)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.internal.QueryParameterBindingImpl.setExplicitTemporalPrecision(QueryParameterBindingImpl.java:295)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.internal.QueryParameterBindingImpl.setBindValue(QueryParameterBindingImpl.java:240)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.spi.AbstractCommonQueryContract.setParameter(AbstractCommonQueryContract.java:1092)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.spi.AbstractSelectionQuery.setParameter(AbstractSelectionQuery.java:882)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.spi.AbstractQuery.setParameter(AbstractQuery.java:607)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.sql.internal.NativeQueryImpl.setParameter(NativeQueryImpl.java:1311)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.sql.internal.NativeQueryImpl.setParameter(NativeQueryImpl.java:111)
at org.jboss.as.jpa@8.0.6.SP1-redhat-00001//org.jboss.as.jpa.container.QueryNonTxInvocationDetacher.setParameter(QueryNonTxInvocationDetacher.java:166)
...(snip)...
or (when running on JDK 17):
java.lang.NullPointerException: Cannot invoke "org.hibernate.query.BindableType.resolveExpressible(org.hibernate.engine.spi.SessionFactoryImplementor)" because "declaredParameterType" is null
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.internal.BindingTypeHelper.resolveTemporalPrecision(BindingTypeHelper.java:44)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.internal.QueryParameterBindingImpl.setExplicitTemporalPrecision(QueryParameterBindingImpl.java:295)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.internal.QueryParameterBindingImpl.setBindValue(QueryParameterBindingImpl.java:240)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.spi.AbstractCommonQueryContract.setParameter(AbstractCommonQueryContract.java:1092)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.spi.AbstractSelectionQuery.setParameter(AbstractSelectionQuery.java:882)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.spi.AbstractQuery.setParameter(AbstractQuery.java:607)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.sql.internal.NativeQueryImpl.setParameter(NativeQueryImpl.java:1311)
at org.hibernate@6.2.31.Final-redhat-00002//org.hibernate.query.sql.internal.NativeQueryImpl.setParameter(NativeQueryImpl.java:111)
at org.jboss.as.jpa@8.0.6.SP1-redhat-00001//org.jboss.as.jpa.container.QueryNonTxInvocationDetacher.setParameter(QueryNonTxInvocationDetacher.java:166)
...(snip)...
Environment
- Red Hat JBoss Enterprise Application Platform (EAP) 8.0.x
- JPA Query with Hibernate 6.2.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.