@Override
    public ResultPage<Meta> find(final FindMetaCriteria criteria) {
        final PageRequest pageRequest = criteria.getPageRequest();

        validateExpressionTerms(criteria.getExpression());

        final Collection<Condition> conditions = createCondition(criteria);

        final Collection<OrderField<?>> orderFields = NullSafe.isEmptyCollection(criteria.getSortList())
                ? Collections.singleton(meta.ID)
                : createOrderFields(criteria);

        final int offset = JooqUtil.getOffset(pageRequest);
        final int numberOfRows = JooqUtil.getLimit(pageRequest, true, FIND_RECORD_LIMIT);

        final Set<Integer> extendedAttributeIds = identifyExtendedAttributesFields(criteria.getExpression(),
                new HashSet<>());

        final List<Meta> list = find(conditions, orderFields, offset, numberOfRows, extendedAttributeIds);
        if (list.size() >= FIND_RECORD_LIMIT) {
            LOGGER.warn("Hit max record limit of '" + FIND_RECORD_LIMIT + "' when finding meta records");
        }

        return ResultPage.createCriterialBasedList(list, criteria);
    }
@return True if any term in any rule expression uses at least one of {@code fields}.
stroom-meta/stroom-meta-impl-db/src/main/java/stroom/meta/impl/db/MetaDaoImpl.java