3

我已经学习了 3 个月的 java spring hibernate MVC 并且对此有了很好的了解。但是我不明白JCR是什么意思。

我的意思是,例如在我的 spring MVC 中的简单网站中,JCR 中可以完成哪些部分

4

3 回答 3

7

JCR 将是替代 JPA (Hibernate) 的替代持久性机制,它将 JDBC 从您的应用程序中隐藏起来。理论上,您在模型中拥有的 Java 类可能与您现在拥有的相同。但是,如果您的模型中出现任何类只是因为您需要为 JPA 建模一些较低级别的数据结构,那么 JCR 可能不需要这些类。

您需要有充分的理由将 JPA 的现有用途替换为 JCR。例如,您可能已经发现使用 JPA 需要跳过许多额外的障碍并做一些您实际上不需要做的事情。

话虽如此,JCR 确实具有一些 JPA 中没有的优势和功能:

  1. JCR 支持结构化数据、非结构化数据以及介于两者之间的所有数据。JCR 允许使用灵活的模式,并且可以非常类似于 NoSQL。JPA 非常结构化,具有固定的模式。
  2. JCR 是分层的——一些用例是非常分层的,使用关系模型来做到这一点可能非常困难/昂贵
  3. JCR 有内置事件
  4. 大多数 JCR 实现可以将内容存储在各种系统中。有些甚至可以访问和联合其他系统中的现有内容。
  5. 字符串值没有长度限制
  6. JCR 具有全文搜索支持
  7. JCR 有多种查询语言,包括 JCR-SQL2(非常类似于 SQL)
  8. 有一些库将 Java 类映射到您的节点结构,因此与 JPA/Hibernate 非常相似

这完全取决于这些功能是否对您的应用程序有益。

于 2011-04-11T16:12:29.843 回答
4

Java Content Repository (JCR),试图以独立于实现的方式解决这些问题(以及许多其他问题);也就是说,无论底层资源(例如数据库、本地或虚拟文件系统)如何,API 都是相同的。位于数据存储之上,JCR 提供内容服务,如粒度访问控制、版本控制、内容事件、全文搜索和过滤等。由 Day Software 领导的 JSR-170 背后有一个令人印象深刻的专家组,包括 Vignette、Hummingbird Ltd.、Stellent 等内容管理系统 (CMS) 供应商以及 BEA Systems、IBM 和 Oracle 等通常的 Java 驱动解决方案提供商,该规范很可能成为内容管理和文档存储的事实标准。

在此处输入图像描述

于 2011-04-11T14:11:33.520 回答
4

关于。关于何时使用 JCR 与关系数据模型的决定,请查看david 的模型。让我大开眼界......

于 2011-05-15T13:55:47.220 回答