JackRabbit - 删除重复行

标签 jackrabbit jcr

我已经在 jackrabbit 用户列表中提出了这个问题,但没有得到答案。

JCR-SQL2 不提供 SELECT DISTINCT(或类似的,据我所知)。 JCR 1.0 中的 SQL 或 XPATH 也不...人们如何解决这个问题?删除重复行的最佳方法是什么?

我读到有人正在迭代结果并将它们放入一个集合中。就我而言,由于可能存在大量结果,这种方法最终可能成本太高。

这里有人有建议吗?

最佳答案

JCR 1.0(例如 JSR-170)或 JCR 2.0(例如 JSR-283)中定义的查询语言都没有 SELECT DISTINCT 的概念。

执行此操作的唯一方法是手动处理结果并丢弃您已经看到的任何行(或节点)。使用一组路径或 Node 对象就可以了。这并不是太困难,但不幸的是它比应有的更难,并且正如您提到的,如果有很多行和/或重复项,则可能会很昂贵。

这就是为什么ModeShape提供对 JCR-SQL2 查询的全面支持,但也允许使用 SELECT DISTINCT 。事实上,ModeShape 支持许多其他功能,例如

  • WHERE 子句中的不相关子查询
  • LIMIT nOFFSET m
  • UNIONINTERSECTEXCEPT
  • 完全外部连接交叉连接
  • BETWEEN 标准
  • 使用 INNOT IN 设置条件
  • DEPTHPATH 动态操作数

还有其他一些。详情见documentation .

关于JackRabbit - 删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5195088/

相关文章:

jackrabbit - JCR Jackrabbit 版本控制

jackrabbit - 是否可以通过 GUID 访问节点?

java - 我可以使用哪种数据库技术来持久化对象? (不需要我负责将对象映射到表并返回的东西)?

java - 如何导出jcr :security in Jackrabbit?

java - 如何将 byte[] 转换为 Binary 以设置 jcr :data with file contents?

java - 将 Hippo JCR 日期时间转换为 Java 格式

aem - JCR中的附加文件

aem - JCR API 或 Apache Sling

aem - cq5 : Where to find the code of the versioning and Diff in geometrixx-outdoors site?

java - 从 JCR 存储库访问资源数据