diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaTypeHelper.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaTypeHelper.java index c10a86c74cea..d4c9d405fe1c 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaTypeHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaTypeHelper.java @@ -34,6 +34,6 @@ public static boolean isTemporal(JavaType javaType) { } public static boolean isUnknown(JavaType javaType) { - return javaType.getClass() == UnknownBasicJavaType.class; + return javaType == null || javaType.getClass() == UnknownBasicJavaType.class; } } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/InTests.java b/hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/InTests.java new file mode 100644 index 000000000000..081dccddf786 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/InTests.java @@ -0,0 +1,33 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ +package org.hibernate.orm.test.query.hql; + +import org.hibernate.dialect.DerbyDialect; +import org.hibernate.testing.orm.domain.StandardDomainModel; +import org.hibernate.testing.orm.junit.*; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@DomainModel(standardModels = StandardDomainModel.GAMBIT) +@SessionFactory +public class InTests { + + @Test + @Jira("https://hibernate.atlassian.net/browse/HHH-19698") + @SkipForDialect(dialectClass = DerbyDialect.class, reason = "Derby doesn't like null literals in the in predicate") + public void testInWithNullLiteral(SessionFactoryScope scope) { + scope.inTransaction( + session -> { + assertEquals(0, session.createQuery("select 1 where 1 in (null)", Integer.class).list().size()); + } + ); + } + +}