|
23 | 23 | */
|
24 | 24 | package org.hibernate.ejb.criteria.basic;
|
25 | 25 |
|
| 26 | +import static org.junit.Assert.assertEquals; |
| 27 | +import static org.junit.Assert.assertNotNull; |
| 28 | + |
| 29 | +import java.math.BigDecimal; |
| 30 | +import java.util.Date; |
| 31 | +import java.util.List; |
| 32 | + |
26 | 33 | import javax.persistence.EntityManager;
|
| 34 | +import javax.persistence.TypedQuery; |
27 | 35 | import javax.persistence.criteria.CriteriaQuery;
|
28 | 36 | import javax.persistence.criteria.ParameterExpression;
|
29 | 37 | import javax.persistence.criteria.Predicate;
|
30 | 38 | import javax.persistence.criteria.Root;
|
31 | 39 | import javax.persistence.metamodel.SingularAttribute;
|
32 | 40 |
|
33 |
| -import org.junit.Test; |
34 |
| - |
35 | 41 | import org.hibernate.ejb.test.BaseEntityManagerFunctionalTestCase;
|
36 |
| - |
37 |
| -import static org.junit.Assert.assertEquals; |
38 |
| -import static org.junit.Assert.assertNotNull; |
| 42 | +import org.hibernate.ejb.criteria.basic.Payment_; |
| 43 | +import org.hibernate.testing.TestForIssue; |
| 44 | +import org.junit.Test; |
39 | 45 |
|
40 | 46 | /**
|
41 | 47 | * @author Steve Ebersole
|
42 | 48 | */
|
43 | 49 | public class BasicCriteriaUsageTest extends BaseEntityManagerFunctionalTestCase {
|
44 | 50 | @Override
|
45 | 51 | public Class[] getAnnotatedClasses() {
|
46 |
| - return new Class[] { Wall.class }; |
| 52 | + return new Class[] { Wall.class, Payment.class }; |
47 | 53 | }
|
48 | 54 |
|
49 | 55 | @Test
|
@@ -74,4 +80,29 @@ public void testTrivialCompilation() {
|
74 | 80 | em.getTransaction().commit();
|
75 | 81 | em.close();
|
76 | 82 | }
|
| 83 | + |
| 84 | + @Test |
| 85 | + @TestForIssue(jiraKey = "HHH-8283") |
| 86 | + public void testDateCompositeCustomType() { |
| 87 | + Payment payment = new Payment(); |
| 88 | + payment.setAmount( new BigDecimal( 1000 ) ); |
| 89 | + payment.setDate( new Date() ); |
| 90 | + |
| 91 | + EntityManager em = getOrCreateEntityManager(); |
| 92 | + em.getTransaction().begin(); |
| 93 | + em.persist( payment ); |
| 94 | + |
| 95 | + CriteriaQuery<Payment> criteria = em.getCriteriaBuilder().createQuery( Payment.class ); |
| 96 | + Root<Payment> rp = criteria.from( Payment.class ); |
| 97 | + Predicate predicate = em.getCriteriaBuilder().equal( rp.get( Payment_.date ), new Date() ); |
| 98 | + criteria.where( predicate ); |
| 99 | + |
| 100 | + TypedQuery<Payment> q = em.createQuery( criteria ); |
| 101 | + List<Payment> payments = q.getResultList(); |
| 102 | + |
| 103 | + assertEquals( 1, payments.size() ); |
| 104 | + |
| 105 | + em.getTransaction().commit(); |
| 106 | + em.close(); |
| 107 | + } |
77 | 108 | }
|
0 commit comments