HHH-18373 - Add test for binding null as value in Criteria API
Signed-off-by: Jan Schatteman <jschatte@redhat.com>
This commit is contained in:
parent
abc4d5ba9e
commit
46b2739061
|
@ -1,16 +1,22 @@
|
||||||
package org.hibernate.orm.test.bulkid;
|
package org.hibernate.orm.test.bulkid;
|
||||||
|
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import jakarta.persistence.Inheritance;
|
import jakarta.persistence.Inheritance;
|
||||||
import jakarta.persistence.InheritanceType;
|
import jakarta.persistence.InheritanceType;
|
||||||
|
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||||
|
import jakarta.persistence.criteria.CriteriaUpdate;
|
||||||
|
import jakarta.persistence.criteria.Root;
|
||||||
|
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
import org.hibernate.cfg.Configuration;
|
import org.hibernate.cfg.Configuration;
|
||||||
|
import org.hibernate.orm.test.jpa.compliance.CriteriaMutationQueryTableTest;
|
||||||
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
|
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
|
||||||
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import org.hibernate.testing.orm.junit.Jira;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -90,6 +96,22 @@ public abstract class AbstractMutationStrategyIdTest extends BaseCoreFunctionalT
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Jira( value = "HHH-18373" )
|
||||||
|
public void testNullValueUpdateWithCriteria() {
|
||||||
|
doInHibernate( this::sessionFactory, session -> {
|
||||||
|
EntityManager entityManager = session.unwrap( EntityManager.class);
|
||||||
|
|
||||||
|
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
|
||||||
|
CriteriaUpdate<Person> update = cb.createCriteriaUpdate( Person.class ).set( "name", null );
|
||||||
|
Root<Person> person = update.from( Person.class );
|
||||||
|
update.where( cb.equal( person.get( "employed" ), true ) );
|
||||||
|
int updateCount = entityManager.createQuery( update ).executeUpdate();
|
||||||
|
|
||||||
|
assertEquals( entityCount(), updateCount );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDeleteFromPerson() {
|
public void testDeleteFromPerson() {
|
||||||
doInHibernate( this::sessionFactory, session -> {
|
doInHibernate( this::sessionFactory, session -> {
|
||||||
|
|
Loading…
Reference in New Issue