Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting JCR SQL2-结果查询顺序与JCR浏览器中相同_Sorting_Jcr_Jcr Sql2 - Fatal编程技术网

Sorting JCR SQL2-结果查询顺序与JCR浏览器中相同

Sorting JCR SQL2-结果查询顺序与JCR浏览器中相同,sorting,jcr,jcr-sql2,Sorting,Jcr,Jcr Sql2,我使用一个可以操作JCR节点的应用程序,通常您可以重命名、移除、删除或移动它们 使用JCRAPI,我可以访问存储库中的节点,并以与JCR中相同的顺序返回一组节点 我希望能够使用JCR SQL2查询执行同样的操作。我还没有发现这方面的任何东西&现在我开始相信这是不可能的 例如,如果我有一个JCR树,例如: parentNode |_childNode1 |_childNode2 |_childNode3 |_childNode4 当使用JCR SQL2进行查询时,它将以不同的顺序返回它们:chi

我使用一个可以操作JCR节点的应用程序,通常您可以重命名、移除、删除或移动它们

使用JCRAPI,我可以访问存储库中的节点,并以与JCR中相同的顺序返回一组节点

我希望能够使用JCR SQL2查询执行同样的操作。我还没有发现这方面的任何东西&现在我开始相信这是不可能的

例如,如果我有一个JCR树,例如:

parentNode
|_childNode1
|_childNode2
|_childNode3
|_childNode4
当使用JCR SQL2进行查询时,它将以不同的顺序返回它们:childNode1、childNode2、childNode3、childNode4

我在这些文档中查找:

提前谢谢


编辑:如果可以选择使用
Java
进行搜索,您可能需要查看


不过,这可能不是最有效的,所以请注意性能问题。

指定查询结果顺序的唯一方法是在查询中使用
order BY
子句。如果不这样做,则实现可以自由地按照它想要的顺序返回节点


但是我知道在JCR-SQL2中没有办法指定父节点下的子节点的“自然顺序”(我的术语)。

您是否尝试将属性“respectDocumentOrder”设置为true

如果为true且查询不包含“ORDERBY”子句,则结果节点将按文档顺序排列。为了在查询返回大量设置为“false”的节点时获得更好的性能(在1.5中,“false”现在是默认值)


只有在需要时才应将其设置为true,因为查询结果将在Java中完全迭代以对其进行排序。

我认为您是正确的:无法指定您所称的“自然顺序”。除非证明你的答案是错的,否则我现在会把你的答案标记为正确的。非常感谢@jfranktzius。你知道有没有什么方法可以通过编程来实现特定的查询吗?我在Magnolia的JIRA上创建了一个问题,希望他们将其设置为默认值。