From 9e8fa2e833bf7ab5de954c11cb236af4ddd4a48a Mon Sep 17 00:00:00 2001 From: Andrea Boriero Date: Thu, 13 Nov 2025 15:00:31 +0100 Subject: [PATCH 1/2] HHH-19926 Add test for issue --- .../java/org/hibernate/orm/test/query/hql/FunctionTests.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/FunctionTests.java b/hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/FunctionTests.java index f8e3f9dfc75e..70dc3f410cff 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/FunctionTests.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/query/hql/FunctionTests.java @@ -2386,10 +2386,15 @@ public void testIn(SessionFactoryScope scope) { session.createQuery("select 1 where 1 in :list", Integer.class) .setParameterList("list",List.of()) .list().size() ); + assertEquals( 0, + session.createQuery( "select e from EntityWithOneToOne e where e.other in (:list)" ) + .setParameter( "list", null ) + .list().size() ); } ); } + @Test public void testMaxGreatest(SessionFactoryScope scope) { scope.inTransaction( From fd3bc22c32720051e7b180f9c5c00940e292ea1c Mon Sep 17 00:00:00 2001 From: Andrea Boriero Date: Wed, 19 Nov 2025 16:33:54 +0100 Subject: [PATCH 2/2] HHH-19926 NullPointerException when executing JPQL IN clause with null parameter on entity association --- .../org/hibernate/query/spi/AbstractCommonQueryContract.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java b/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java index 499641be6512..fe40ab83a4b5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java +++ b/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java @@ -824,7 +824,7 @@ public CommonQueryContract setParameter(String name, Object value) { final QueryParameter param = binding.getQueryParameter(); if ( param.allowsMultiValuedBinding() ) { final BindableType hibernateType = param.getHibernateType(); - if ( hibernateType == null || isInstance( hibernateType, value ) ) { + if ( hibernateType == null || value == null || isInstance( hibernateType, value ) ) { if ( value instanceof Collection && !isRegisteredAsBasicType( value.getClass() ) ) { //noinspection rawtypes return setParameterList( name, (Collection) value );