java - JCR按路径查询

标签 java jackrabbit jcr jcr-sql2

我正在尝试通过以下查询查询给定节点类型的子树:

SELECT * FROM [my:Type] AS my WHERE PATH(my) LIKE '/content/subtree/%'

不知怎的,它没有给出任何结果 - 使用 IDESCENDANTNODE 有效 - 但一旦我总共有 >5k 个元素,查询性能就会很糟糕 - 无论是在我的子树内部还是外部。

最佳答案

我认为 PATH(my) 无效 JCR SQLJCR 2.0 SQL-2语法。您应该使用 SQL-2:

select * from [my:Type] where isdescendantnode('/content/subtree')

或 XPath

/jcr:root/content//element(*, my:Type)

这可能会很慢,因为它只会使用节点类型上的索引(路径没有索引)。如果您需要更快,您可以(例如)将路径存储为属性,然后添加相应的条件;然而,这将阻止快速移动操作。

关于java - JCR按路径查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15763989/

相关文章:

java - 通过java在JCR repo中进行递归搜索

java - 无法找到正确的文件路径

JavaFX Tableview 持有两种对象

java - 如何将此代码从 iOS swift 转换为 Android Kotlin

java - 当我启动应用程序时尝试获取 Android_ID 崩溃

jackrabbit - 如何使用 MicroKernel 在 JackRabbit Oak 中创建存储库实例

java - 将多个 JCR 存储库连接到一个数据库(并保持更新)

oracle - 根节点捆绑的唯一约束违规,Apache Jackrabbit 与 Oracle

apache - 无法初始化 JCR_MOCK 资源解析器工厂 - 吊索模拟

mediawiki - Apache Stanbol 和(语义)Mediawiki