Извлечь родительский узел с помощью построителя запросов AEM - PullRequest
1 голос
/ 01 июля 2019

Мне нужно получить родительский узел с помощью AEM Query Builder.

Например, это мой запрос:

path:/content/test/us/bar
1_property:product
1_property.operation:exists

2_property:product
2_property.value:8003170008212

Этот запрос позволяет мне получить следующие элементы:

1) /content/test/us/bar/table/jcr:content/releated/product/2  
2) /content/test/us/bar/chair/jcr:content/releated/product/1

Используя этот запрос, можно получить все элементы, помещенные в / content / test / us / bar, которые содержат 8003170008212 в качестве значения свойства продукта.

Начиная с предыдущих пунктов маркера, мне нужно вернуть только родительский элемент, например:

1) /content/test/us/bar/table
2) /content/test/us/bar/chair

Я могу достичь своей цели программно, повторяя результаты и используя 3 раза метод getParent ().

Мне интересно: есть ли способ получить его с помощью построителя запросов?

1 Ответ

3 голосов
/ 01 июля 2019

Если искомое свойство всегда присутствует по известному пути, запрос можно переписать как

path=/content/test/us/bar
1_property=jcr:content/related/product
1_property.operation=exists

2_property=jcr:content/related/product
2_property.value=8003170008212 

Это приведет к

/content/test/us/bar/table
/content/test/us/bar/chair

, что позволяет избежать циклического просмотра результата и поиска родительских узлов.

Например, следующий запрос в моей локальной среде

path=/content/we-retail/language-masters/en
1_property=displayMode
1_property.operation=exists

2_property=displayMode
2_property.value=singleText

результат в

/content/we-retail/language-masters/en/experience/wester-australia-by-camper-van/jcr:content/root/responsivegrid/contentfragment
/content/we-retail/language-masters/en/experience/arctic-surfing-in-lofoten/jcr:content/root/responsivegrid/contentfragment
/content/we-retail/language-masters/en/experience/steelhead-and-spines-in-alaska/jcr:content/root/responsivegrid/contentfragment
/content/we-retail/language-masters/en/experience/hours-of-wilderness/jcr:content/root/responsivegrid/contentfragment
/content/we-retail/language-masters/en/experience/skitouring/jcr:content/root/responsivegrid/contentfragment
/content/we-retail/language-masters/en/experience/fly-fishing-the-amazon/jcr:content/root/responsivegrid/contentfragment

Но переписать следующий запрос в

path=/content/we-retail/language-masters/en
1_property=jcr:content/root/responsivegrid/contentfragment/displayMode
1_property.operation=exists

2_property=jcr:content/root/responsivegrid/contentfragment/displayMode
2_property.value=singleText

результат в

/content/we-retail/language-masters/en/experience/wester-australia-by-camper-van
/content/we-retail/language-masters/en/experience/arctic-surfing-in-lofoten
/content/we-retail/language-masters/en/experience/steelhead-and-spines-in-alaska
/content/we-retail/language-masters/en/experience/hours-of-wilderness
/content/we-retail/language-masters/en/experience/skitouring
/content/we-retail/language-masters/en/experience/fly-fishing-the-amazon
...