|
1 | 1 | package org.hibernate.orm.test.bulkid;
|
2 | 2 |
|
3 | 3 | import jakarta.persistence.Entity;
|
| 4 | +import jakarta.persistence.EntityManager; |
4 | 5 | import jakarta.persistence.GeneratedValue;
|
5 | 6 | import jakarta.persistence.Id;
|
6 | 7 | import jakarta.persistence.Inheritance;
|
7 | 8 | import jakarta.persistence.InheritanceType;
|
| 9 | +import jakarta.persistence.criteria.CriteriaBuilder; |
| 10 | +import jakarta.persistence.criteria.CriteriaUpdate; |
| 11 | +import jakarta.persistence.criteria.Root; |
8 | 12 |
|
9 | 13 | import org.hibernate.cfg.AvailableSettings;
|
10 | 14 | import org.hibernate.cfg.Configuration;
|
| 15 | +import org.hibernate.orm.test.jpa.compliance.CriteriaMutationQueryTableTest; |
11 | 16 | import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
|
12 | 17 |
|
13 | 18 | import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
| 19 | +import org.hibernate.testing.orm.junit.Jira; |
14 | 20 | import org.junit.Before;
|
15 | 21 | import org.junit.Test;
|
16 | 22 |
|
@@ -90,6 +96,22 @@ public void testUpdate() {
|
90 | 96 | });
|
91 | 97 | }
|
92 | 98 |
|
| 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 | + |
93 | 115 | @Test
|
94 | 116 | public void testDeleteFromPerson() {
|
95 | 117 | doInHibernate( this::sessionFactory, session -> {
|
|
0 commit comments