Sorting JCR SQL2-结果查询顺序与JCR浏览器中相同
我使用一个可以操作JCR节点的应用程序,通常您可以重命名、移除、删除或移动它们 使用JCRAPI,我可以访问存储库中的节点,并以与JCR中相同的顺序返回一组节点 我希望能够使用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
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上创建了一个问题,希望他们将其设置为默认值。