// where-clause
Predicate wherePredicate = whereClauseForFilter(critBuilder, critQuery, root, filter);
if (wherePredicate != null) {
critQuery.where(wherePredicate);
}
critQuery.orderBy(critBuilder.asc(root.get(Purchaser_.name)));
TypedQuery<Purchaser> query = em.createQuery(critQuery);
query.setFirstResult(filter.calculateFirstResultIndex());
query.setMaxResults(filter.getPaginatedPageSize());