Путь не включен в Queryresult (row.getValue) - PullRequest
1 голос
/ 08 апреля 2019

у нас все еще используется Jackrabbit 2 (2.18.0), и у меня есть проблема с загрузкой "jcr: path" в Query-Result.

В этом примере у нас есть пользовательский узел "org: разрешение "с пользовательским свойством" org :missionHolderIds ".

Пользовательское свойство заполняется значениями в найденных строках.

String queryString = "SELECT [jcr:path], [org:permissionHolderIds] FROM [org:permission]";

QueryManager queryManager = session.getWorkspace().getQueryManager();
Query query = queryManager.createQuery(queryString, Query.JCR_SQL2);
QueryResult queryResult = query.execute();
RowIterator rows = queryResult.getRows();
Row r = rows.nextRow();

String holder= r.getValue("org:permissionHolderIds").getString();
// is filled properly

String path = r.getValue("jcr:path").getString();
// path is empty all the time :-(

До сих пор мы итерировали по найденным узлам, но этовызывает дополнительные запросы к базе данных и работает медленно.Поэтому мы попытались улучшить нашу производительность и получить все необходимые данные в запросе.

Спасибо!

1 Ответ

1 голос
/ 03 мая 2019

jcr: путь не является свойством узла, поэтому это не должно делать то, что вы хотите.Тем не менее, почему бы вам не использовать https://docs.adobe.com/docs/en/spec/javax.jcr/javadocs/jcr-2.0/javax/jcr/query/Row.html#getPath()?

...