Skip to content

Commit 46b2739

Browse files
jrenaatbeikov
authored andcommitted
HHH-18373 - Add test for binding null as value in Criteria API
Signed-off-by: Jan Schatteman <[email protected]>
1 parent abc4d5b commit 46b2739

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/bulkid/AbstractMutationStrategyIdTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
package org.hibernate.orm.test.bulkid;
22

33
import jakarta.persistence.Entity;
4+
import jakarta.persistence.EntityManager;
45
import jakarta.persistence.GeneratedValue;
56
import jakarta.persistence.Id;
67
import jakarta.persistence.Inheritance;
78
import jakarta.persistence.InheritanceType;
9+
import jakarta.persistence.criteria.CriteriaBuilder;
10+
import jakarta.persistence.criteria.CriteriaUpdate;
11+
import jakarta.persistence.criteria.Root;
812

913
import org.hibernate.cfg.AvailableSettings;
1014
import org.hibernate.cfg.Configuration;
15+
import org.hibernate.orm.test.jpa.compliance.CriteriaMutationQueryTableTest;
1116
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
1217

1318
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
19+
import org.hibernate.testing.orm.junit.Jira;
1420
import org.junit.Before;
1521
import org.junit.Test;
1622

@@ -90,6 +96,22 @@ public void testUpdate() {
9096
});
9197
}
9298

99+
@Test
100+
@Jira( value = "HHH-18373" )
101+
public void testNullValueUpdateWithCriteria() {
102+
doInHibernate( this::sessionFactory, session -> {
103+
EntityManager entityManager = session.unwrap( EntityManager.class);
104+
105+
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
106+
CriteriaUpdate<Person> update = cb.createCriteriaUpdate( Person.class ).set( "name", null );
107+
Root<Person> person = update.from( Person.class );
108+
update.where( cb.equal( person.get( "employed" ), true ) );
109+
int updateCount = entityManager.createQuery( update ).executeUpdate();
110+
111+
assertEquals( entityCount(), updateCount );
112+
});
113+
}
114+
93115
@Test
94116
public void testDeleteFromPerson() {
95117
doInHibernate( this::sessionFactory, session -> {

0 commit comments

Comments
 (0)