diff --git a/hibernate-core/src/main/java/org/hibernate/query/specification/internal/MutationSpecificationImpl.java b/hibernate-core/src/main/java/org/hibernate/query/specification/internal/MutationSpecificationImpl.java index efde9b962c0b..47331c7f3200 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/specification/internal/MutationSpecificationImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/specification/internal/MutationSpecificationImpl.java @@ -79,7 +79,7 @@ public String getName() { @Override public Class getResultType() { - return Void.class; + return null; } @Override diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/query/dynamic/SimpleQuerySpecificationTests.java b/hibernate-core/src/test/java/org/hibernate/orm/test/query/dynamic/SimpleQuerySpecificationTests.java index 5ee5ccad0648..34332e641e9e 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/query/dynamic/SimpleQuerySpecificationTests.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/query/dynamic/SimpleQuerySpecificationTests.java @@ -160,6 +160,22 @@ void testSimpleMutationRestriction(SessionFactoryScope factoryScope) { assertThat( sqlCollector.getSqlQueries().get( 0 ) ).contains( " where be1_0.position between ? and ?" ); } + @Test + void testSimpleMutationRestrictionAsReference(SessionFactoryScope factoryScope) { + final SQLStatementInspector sqlCollector = factoryScope.getCollectingStatementInspector(); + var deleteBasicEntity = MutationSpecification + .create( BasicEntity.class, "delete BasicEntity" ) + .restrict( Restriction.restrict( BasicEntity_.position, Range.closed( 1, 5 ) ) ) + .reference(); + factoryScope.inTransaction( session -> { + sqlCollector.clear(); + session.createQuery( deleteBasicEntity ).executeUpdate(); + } ); + + assertThat( sqlCollector.getSqlQueries() ).hasSize( 1 ); + assertThat( sqlCollector.getSqlQueries().get( 0 ) ).contains( " where be1_0.position between ? and ?" ); + } + @Test void testRootEntityForm(SessionFactoryScope factoryScope) { final SQLStatementInspector sqlCollector = factoryScope.getCollectingStatementInspector();