NullPointerException happens in Hibernate when setting null value as parameter to Query.setParameter​() with TemporalType parameter

Solution Unverified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content