1

我们仍在使用 Jackrabbit 2 (2.18.0),我在 Query-Result 中加载“jcr:path”时遇到问题。

在此示例中,我们有一个自定义节点“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 :-(

到目前为止,我们迭代了找到的节点,但这会导致额外的数据库查询并且速度很慢。所以我们试图提高我们的性能并在查询中获取所有必要的数据。

谢谢!

4

1 回答 1

1

jcr:path 不是节点属性,所以这不应该做你想做的事。也就是说,您为什么不使用https://docs.adobe.com/docs/en/spec/javax.jcr/javadocs/jcr-2.0/javax/jcr/query/Row.html#getPath()

于 2019-05-03T14:34:35.277 回答