у нас все еще используется Jackrabbit 2 (2.18.0), и у меня проблема с загрузкой «jcr: path» в Query-Result.
В этом примере у нас есть настраиваемый узел «org:permission» с настраиваемым свойством «org:permissionHolderIds».
Пользовательское свойство заполняется значениями в найденных строках.
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 :-(
До сих пор мы перебирали найденные узлы, но это вызывало дополнительные запросы к базе данных и работало медленно. Поэтому мы попытались улучшить нашу производительность и получить все необходимые данные в запросе.
Спасибо!
jcr:path не является свойством узла, поэтому он не должен делать то, что вы хотите. Тем не менее, почему бы вам не использовать https://docs.adobe.com/docs/en/spec/javax.jcr/javadocs/jcr-2.0/javax/jcr/query/Row.html#getPath()?