|
28 | 28 | import javax.persistence.EntityManager; |
29 | 29 | import javax.persistence.criteria.CriteriaBuilder; |
30 | 30 | import javax.persistence.criteria.CriteriaQuery; |
| 31 | +import javax.persistence.criteria.Expression; |
31 | 32 | import javax.persistence.criteria.Predicate; |
32 | 33 | import javax.persistence.criteria.Root; |
33 | 34 |
|
@@ -143,6 +144,37 @@ public void cleanupTestData() { |
143 | 144 | em.close(); |
144 | 145 | } |
145 | 146 |
|
| 147 | + @Test |
| 148 | + public void testCountIdClassAttributes(){ |
| 149 | + EntityManager em = getOrCreateEntityManager(); |
| 150 | + em.getTransaction().begin(); |
| 151 | + CriteriaBuilder cb = em.getCriteriaBuilder(); |
| 152 | + CriteriaQuery<Long> cq = cb.createQuery(Long.class); |
| 153 | + Root<Widget> path = cq.from(Widget.class); |
| 154 | + Expression<Long> countSelection = cb.count(path); |
| 155 | + cq.select(countSelection); |
| 156 | + Long count = em.createQuery(cq).getSingleResult(); |
| 157 | +// // Packaging arguments for use in query. |
| 158 | +// List<String> divisions = new ArrayList<String>( ); |
| 159 | +// divisions.add( "NA" ); |
| 160 | +// divisions.add( "EU" ); |
| 161 | +// |
| 162 | +// // Building the query. |
| 163 | +// CriteriaBuilder criteria = em.getCriteriaBuilder( ); |
| 164 | +// CriteriaQuery<Widget> query = criteria.createQuery( Widget.class ); |
| 165 | +// Root<Widget> root = query.from( Widget.class ); |
| 166 | +// |
| 167 | +// Predicate predicate = root.get( "division" ).in( divisions ); |
| 168 | +// query.where( predicate ); |
| 169 | +// |
| 170 | +// // Retrieving query.; |
| 171 | +// List<Widget> widgets = em.createQuery( query ).getResultList( ); |
| 172 | +// Assert.assertEquals( 4, widgets.size() ); |
| 173 | + |
| 174 | + em.getTransaction().commit(); |
| 175 | + em.close(); |
| 176 | + } |
| 177 | + |
146 | 178 |
|
147 | 179 | @Test |
148 | 180 | public void testDeclaredIdClassAttributes( ) { |
|
0 commit comments