From fd1963a6a267b76bf45e31c1d0be7515f086defc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 27 May 2019 12:00:15 +0200 Subject: [PATCH] HHH-13154 Backport BasicCriteriaExecutionTests from ORM 6 --- .../criteria/BasicCriteriaExecutionTests.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/query/criteria/BasicCriteriaExecutionTests.java diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/query/criteria/BasicCriteriaExecutionTests.java b/hibernate-core/src/test/java/org/hibernate/orm/test/query/criteria/BasicCriteriaExecutionTests.java new file mode 100644 index 0000000000..1c4bc46205 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/query/criteria/BasicCriteriaExecutionTests.java @@ -0,0 +1,89 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ +package org.hibernate.orm.test.query.criteria; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.ParameterExpression; +import javax.persistence.criteria.Root; + +import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase; +import org.junit.Test; + +/** + * @author Steve Ebersole + */ +public class BasicCriteriaExecutionTests extends BaseNonConfigCoreFunctionalTestCase { + + @Override + protected Class[] getAnnotatedClasses() { + return new Class[] { BasicEntity.class }; + } + + @Test + public void testExecutingBasicCriteriaQuery() { + final CriteriaBuilder criteriaBuilder = sessionFactory().getCriteriaBuilder(); + + final CriteriaQuery criteria = criteriaBuilder.createQuery(); + + final Root root = criteria.from( BasicEntity.class ); + + criteria.select( root ); + + inSession( + session -> session.createQuery( criteria ).list() + ); + } + + @Test + public void testExecutingBasicCriteriaQueryLiteralPredicate() { + final CriteriaBuilder criteriaBuilder = sessionFactory().getCriteriaBuilder(); + + final CriteriaQuery criteria = criteriaBuilder.createQuery(); + + final Root root = criteria.from( BasicEntity.class ); + + criteria.select( root ); + + criteria.where( criteriaBuilder.equal( criteriaBuilder.literal( 1 ), criteriaBuilder.literal( 1 ) ) ); + + inSession( + session -> session.createQuery( criteria ).list() + ); + } + + @Test + public void testExecutingBasicCriteriaQueryParameterPredicate() { + final CriteriaBuilder criteriaBuilder = sessionFactory().getCriteriaBuilder(); + + final CriteriaQuery criteria = criteriaBuilder.createQuery(); + + final Root root = criteria.from( BasicEntity.class ); + + criteria.select( root ); + + final ParameterExpression param = criteriaBuilder.parameter( Integer.class ); + + criteria.where( criteriaBuilder.equal( param, param ) ); + + inSession( + session -> session.createQuery( criteria ).setParameter( param, 1 ).list() + ); + } + + @Entity + public static class BasicEntity { + + @Id + @GeneratedValue + private Integer id; + + } +}