Skip to content

Commit a0d0641

Browse files
Ouznedbrmeyer
authored andcommitted
added test case to reproduce HHH-8373
1 parent e8035cc commit a0d0641

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

hibernate-entitymanager/src/test/java/org/hibernate/ejb/criteria/basic/BasicCriteriaUsageTest.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,22 @@
3232

3333
import javax.persistence.EntityManager;
3434
import javax.persistence.TypedQuery;
35+
import javax.persistence.criteria.CriteriaBuilder;
3536
import javax.persistence.criteria.CriteriaQuery;
3637
import javax.persistence.criteria.ParameterExpression;
3738
import javax.persistence.criteria.Predicate;
3839
import javax.persistence.criteria.Root;
3940
import javax.persistence.metamodel.SingularAttribute;
4041

4142
import org.hibernate.ejb.test.BaseEntityManagerFunctionalTestCase;
42-
import org.hibernate.ejb.criteria.basic.Payment_;
4343
import org.hibernate.testing.TestForIssue;
4444
import org.junit.Test;
4545

4646
/**
4747
* @author Steve Ebersole
4848
*/
4949
public class BasicCriteriaUsageTest extends BaseEntityManagerFunctionalTestCase {
50+
5051
@Override
5152
public Class[] getAnnotatedClasses() {
5253
return new Class[] { Wall.class, Payment.class };
@@ -59,9 +60,7 @@ public void testParameterCollection() {
5960
CriteriaQuery<Wall> criteria = em.getCriteriaBuilder().createQuery( Wall.class );
6061
Root<Wall> from = criteria.from( Wall.class );
6162
ParameterExpression param = em.getCriteriaBuilder().parameter( String.class );
62-
SingularAttribute<? super Wall,?> colorAttribute = em.getMetamodel()
63-
.entity( Wall.class )
64-
.getDeclaredSingularAttribute( "color" );
63+
SingularAttribute<? super Wall, ?> colorAttribute = em.getMetamodel().entity( Wall.class ).getDeclaredSingularAttribute( "color" );
6564
assertNotNull( "metamodel returned null singular attribute", colorAttribute );
6665
Predicate predicate = em.getCriteriaBuilder().equal( from.get( colorAttribute ), param );
6766
criteria.where( predicate );
@@ -105,4 +104,26 @@ public void testDateCompositeCustomType() {
105104
em.getTransaction().commit();
106105
em.close();
107106
}
107+
108+
@Test
109+
@TestForIssue(jiraKey = "HHH-8373")
110+
public void testFunctionCriteria() {
111+
Wall wall = new Wall();
112+
wall.setColor( "yellow" );
113+
EntityManager em = getOrCreateEntityManager();
114+
em.getTransaction().begin();
115+
em.persist( wall );
116+
117+
CriteriaBuilder cb = em.getCriteriaBuilder();
118+
CriteriaQuery<Wall> query = cb.createQuery( Wall.class );
119+
Root<Wall> root = query.from( Wall.class );
120+
121+
query.select( root ).where( cb.equal( root.get( "color" ), cb.lower( cb.literal( "YELLOW" ) ) ) );
122+
123+
Wall resultItem = em.createQuery( query ).getSingleResult();
124+
assertNotNull( resultItem );
125+
126+
em.getTransaction().commit();
127+
em.close();
128+
}
108129
}

0 commit comments

Comments
 (0)