QueryCallback query = new QueryCallback() {
public Collection<Object> execute(Session session) {
HiveCriteria c = new HiveCriteriaImpl(session.createCriteria(config.getRepresentedInterface()).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY), getRespresentedClass());
if (ReflectionTools.isComplexCollectionItemProperty(getRespresentedClass(), propertyName)) {
c.createCriteria(propertyName)
.add(Restrictions.between("id", minValue, maxValue));
} else {
c.add(Restrictions.between(propertyName, minValue, maxValue));
}
c.setProjection(Projections.rowCount());