docs: public List<E> list(int first, int max, String sortProperty, boolean ascending)
      {
          Criteria c = createCriteria()
                  .setMaxResults(max)
                  .setFirstResult(first);
          final int ndx = sortProperty.lastIndexOf('.');
          if (ndx != -1)
          {
              final String associationPath = sortProperty.substring(0, ndx);
              final String propertyName = sortProperty.substring(ndx + 1);
              c = c.createAlias(associationPath, ASSOCIATION_ALIAS)
                      .addOrder(ascending ? Order.asc(ASSOCIATION_ALIAS + "." + propertyName) : Order.desc(ASSOCIATION_ALIAS + "." + propertyName));
          }
          else
          {
              c = c.addOrder(ascending ? Order.asc(sortProperty) : Order.desc(sortProperty));
          }
          return list(c);
      }