@Override public long count(final SearchCriterion criterion) { final String countAlias = "count"; SearchCriteriaBuilder scb = find(); if (criterion != null) { scb.add(criterion); } scb.setProjection(alias(rowCount(), countAlias)); scb.addOrder(asc(countAlias)); Entity countProjection = scb.setMaxResults(1).uniqueResult(); return (Long) countProjection.getField(countAlias); }