@Override public CriteriaQuery<DateTime> apply(CriteriaBuilder cb) { final CriteriaQuery<DateTime> criteriaQuery = cb.createQuery(DateTime.class); final Root<PersistentPortalEvent> eventRoot = criteriaQuery.from(PersistentPortalEvent.class); // Get the largest event timestamp criteriaQuery.select( cb.greatest( eventRoot.get(PersistentPortalEvent_.timestamp))); return criteriaQuery; } });
CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery query = cb.createQuery(EntityX.class); Root<EntityX> root = query.from(EntityX.class); Subquery<String> maxSubQuery = query.subquery(String.class); Root<EntityX> fromEntityX = maxSubQuery.from(EntityX.class); maxSubQuery.select(cb.greatest(fromEntityX.get(EntityX_.nameX))); query.where(cb.equal(root.get(EntityX_.nameX), maxSubQuery));
@Override public CriteriaQuery<DateDimensionImpl> apply(CriteriaBuilder cb) { final CriteriaQuery<DateDimensionImpl> criteriaQuery = cb.createQuery(DateDimensionImpl.class); final Root<DateDimensionImpl> dimensionRoot = criteriaQuery.from(DateDimensionImpl.class); // Build subquery for max date final Subquery<LocalDate> maxDateSub = criteriaQuery.subquery(LocalDate.class); final Root<DateDimensionImpl> maxDateDimensionSub = maxDateSub.from(DateDimensionImpl.class); maxDateSub.select( cb.greatest( maxDateDimensionSub.get(DateDimensionImpl_.date))); // Get the date dimension criteriaQuery .select(dimensionRoot) .where( cb.equal( dimensionRoot.get(DateDimensionImpl_.date), maxDateSub)); return criteriaQuery; } });
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Tuple> cq = cb.createTupleQuery(); Root<ObjectMetadata> root = cq.from(ObjectMetadata.class); cq.multiselect( root.get("fileName").alias("filename"), cb.greatest(root.<Date>get("lastModified").alias("lastmodified") ); cq.groupBy(root.get("fileName")); List<Tuple> result = em.createQuery(cq).getResultList() for (Tuple t: result) { System.out.println(t.get("filename") + " " + t.get("lastmodified")); }
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Tuple> q = cb.createTupleQuery(); Root<A> root = q.from(A.class); Join<A, B> bItem = root.join("listOfB"); q.multiselect( root.alias("A"), cb.greatest(bItem.<Date>get("createdOn")).alias("TS")); //MAX // cb.least(bItem.<Date>get("createdOn")).alias("TS")); //MIN q.orderBy(cb.asc(root)); q.groupBy(root); List<Tuple> tuples = em.createQuery(q).getResultList() for (Tuple array : result) { System.out.println(array.get("A").toString() + ":\t" + array.get("TS")); }
Subquery<Date> sq = cq.subquery(Date.class); Root<StoreSystemBuild> ssb = sq.from(StoreSystemBuild.class); sq.select(cb.greatest(ssb.get(StoreSystemBuild_.date))) .where( cb.equal(
partitionValue = builder.greatest(businessObjectDataEntityRoot.get(singleValuedAttribute)); break; case LEAST:
partitionValue = builder.greatest(businessObjectDataEntityRoot.get(singleValuedAttribute)); break; case LEAST: