diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/query/CriteriaUpdateWithParametersTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/query/CriteriaUpdateWithParametersTest.java index 40f665c57625..f7827427f88c 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/query/CriteriaUpdateWithParametersTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/query/CriteriaUpdateWithParametersTest.java @@ -4,6 +4,8 @@ */ package org.hibernate.orm.test.jpa.query; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Lob; import org.hibernate.testing.orm.junit.EntityManagerFactoryScope; import org.hibernate.testing.orm.junit.Jpa; import org.junit.jupiter.api.Test; @@ -17,8 +19,12 @@ import jakarta.persistence.criteria.Root; import jakarta.persistence.metamodel.EntityType; + @Jpa( - annotatedClasses = CriteriaUpdateWithParametersTest.Person.class + annotatedClasses = { + CriteriaUpdateWithParametersTest.Person.class, + CriteriaUpdateWithParametersTest.Process.class + } ) public class CriteriaUpdateWithParametersTest { @@ -76,6 +82,19 @@ public void testCriteriaUpdate2(EntityManagerFactoryScope scope) { ); } + @Test + public void testCriteriaUpdate3(EntityManagerFactoryScope scope) { + scope.inTransaction( em -> { + CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); + CriteriaUpdate createCriteriaUpdate = criteriaBuilder.createCriteriaUpdate( + Process.class ); + Root root = createCriteriaUpdate.from( Process.class ); + createCriteriaUpdate.set( root.get( "name" ), (Object) null ); + createCriteriaUpdate.set( root.get( "payload" ), (Object) null ); + em.createQuery( createCriteriaUpdate ).executeUpdate(); + } ); + } + @Entity(name = "Person") public static class Person { @@ -101,4 +120,20 @@ public Integer getAge() { return age; } } + + @Entity + public static class Process { + + @Id + @GeneratedValue + private Long id; + + // All attributes below are necessary to reproduce the issue + + private String name; + + @Lob + private byte[] payload; + + } }