Ни один из языков запросов, определенных в JCR 1.0 (например, JSR-170) или JCR 2.0 (например, JSR-283), не имеет понятия SELECT DISTINCT
.
Единственный способ сделать этообрабатывать результаты вручную и выбрасывать любые строки (или узлы), которые вы уже видели.Использование набора путей или объектов Node будет работать.Это не так уж сложно, но, к сожалению, сложнее, чем должно быть, и, как вы упоминаете, может быть дорогим, если есть много строк и / или дубликатов.
Вот почему ModeShape обеспечивает полную поддержку запросов JCR-SQL2, но также позволяет использовать SELECT DISTINCT
.Фактически, ModeShape поддерживает ряд других функций, таких как
- некоррелированные подзапросы в предложении
WHERE
LIMIT n
и OFFSET m
UNION
, INTERSECT
и EXCEPT
FULL OUTER JOIN
и CROSS JOIN
BETWEEN
критерий - набор критериев с использованием
IN
и NOT IN
DEPTH
и PATH
динамические операнды
и некоторые другие.Подробнее см. Документацию .
.