根目录包含一个文件夹,名为pending类型为sling:folder。
具有nt:unstructured类型的节点数,具有长值名称,长值对我的代码处理非常重要。
现在我想从这个待处理的文件夹中获取前 20 个节点(20 个最小节点名称,即长值)数据。
你能告诉我如何为这种情况编写 JCR 查询吗?
编辑 1
Repository repository = JcrUtils.getRepository("http://localhost:4502/crx/server");
Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
// Obtain the query manager for the session via the workspace ...
QueryManager queryManager = session.getWorkspace().getQueryManager();
// Create a query object ...
String expression = "SELECT * FROM [nt:base] AS s WHERE ISDESCENDANTNODE([/pending])";
Query query = queryManager.createQuery(expression, javax.jcr.query.Query.JCR_SQL2);
// Execute the query and get the results ...
QueryResult result = query.execute();
// Iterate over the nodes in the results ...
NodeIterator nodeIter = result.getNodes();
但它给出了一些顺序,与根节点中存在的顺序不同。但这不是排序形式。
编辑 No.2
现在我得到了这个函数的功能。现在它工作正常。我得到的是对目标节点上方的节点进行排序,这在此函数的第二个参数中提到。
但是即将到来的节点具有不同的名称(一个数字)。那么我该如何使用orderBefore
. 因为每次我们都无法知道必须放置此节点的正确位置(目标相对路径)。