我需要查询jcr存储库以查找日期属性(例如jcr:created)比特定日期更年轻的节点.
使用SQL2,我像这样检查"jcr:created> date"(工作正常):
SELECT * FROM [nt:base] AS s WHERE s.[jcr:created] > CAST('2012-01-05T00:00:00.000Z' AS DATE)
现在棘手的部分:
还有一个额外的属性声明需要动态添加到jcr:created日期的天数.
假设该属性包含5(天),那么查询不应该检查"jcr:created> date"而是"(jcr:created + 5)> date".包含属性值10的下一个节点应通过"(jcr:created + 10)> date"进行检查.
是否有任何智能/动态操作数可以做到这一点?由于属性是特定于节点的,因此我无法将其静态添加到查询中,但必须读取每个节点的属性.
Jackrabbit目前不支持这种动态约束.
我认为现在最好的解决方案是使用固定日期约束运行查询,然后自己显式过滤结果.
另一种解决方案是预先计算"jcr:created + extratime"值并将其存储在附加属性中.这样的计算可以位于首先创建/更新节点的代码中,也可以将它放在观察监听器中,这样无论节点如何被修改,它都会被触发.
| 归档时间: |
|
| 查看次数: |
4423 次 |
| 最近记录: |