【问题标题】:JCR-SQL2 Query SubnodesJCR-SQL2 查询子节点
【发布时间】:2018-11-24 09:35:47
【问题描述】:

我需要在 JCR 中找到一个条目,其中包含日期的节点列表中的日期与我的条件匹配。 数据结构是

- Event1 -- Dates --- 0 ---- startDate: xyz ---- endDate: xyz --- 1 ---- startDate: xyz ---- endDate: xyz - Event1 -- Dates --- 0 ---- startDate: xyz ---- endDate: xyz --- 1 ---- startDate: xyz ---- endDate: xyz

所以我需要遍历所有节点,现在我需要选择名为DATE 的子节点并遍历它并检查时间戳属性。如果时间戳符合我的标准,则返回整个节点。

这是一次失败的尝试:

select p.date from [mgnl:contact] as p where p.[startDate] > CAST('2010-01-01T00:00:00.000+02:00' as date)

我希望在 2010 年 1 月 1 日之后获取所有条目。

我可以通过从 jcr 中获取所有内容并在 Java 中进行过滤来做到这一点。在 JCR-SQL2 中,我什至不知道从哪里开始。

【问题讨论】:

    标签: sql jcr magnolia jcr-sql2


    【解决方案1】:

    我猜它不起作用,因为 p.date 不是给定节点类型的直接属性。我想如果你把它改成mgnl:contentNode 就可以了。

    也试一试:

    select * from [mgnl:contact] where [startDate] > cast('2010-01-01T00:00:00.000+02:00' as date)

    干杯,

    HTH,

    【讨论】:

    • 谢谢!可悲的是,这两个答案都给出了空洞的结果。我想问题是,[startDate] 是一个未命名(编号)节点的子节点,而该节点又是一个名为 [date] 的节点的子节点。我不明白如何查询此类未命名节点列表的子道具。您编写查询的方式,似乎我可以忽略节点的路径?再次感谢!
    • 似乎我之前误解了。玩弄它已经解决了,您的评论绝对正确。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多