【问题标题】:JPA specification for NoSQL databasesNoSQL 数据库的 JPA 规范
【发布时间】:2017-09-08 08:11:37
【问题描述】:

我刚刚听说 JPA 规范现在可用于 nosql 数据库。我的问题是,它与我们过去使用的关系数据库相同吗?因为关系数据库和 nosql 数据库之间存在许多差异,尤其是当我们谈论事务时,这完全不同。 oracle 是否发布了包含 nosql 数据库新更改的新规范?

问候

【问题讨论】:

  • JPA 是关于对象关系映射的,所以它不可能是关于无 SQL 数据库的。你必须找到另一个规范。
  • Hibernate OGM 是 nosql 数据库的 JPA 实现之一。
  • Hibernate ORM 出现在 JPA 之前;我猜这个是在没有规范的情况下出生的。我不使用任何一种。我认为两者都是浪费时间,只会增加不必要的依赖和复杂性。它们适用于不懂 SQL 的人。

标签: jpa nosql


【解决方案1】:

JPA 完全是为 RDBMS 数据存储定义的。请参阅 Oracle 规范。

有一些众所周知的 JPA 实现扩展了对 JPA 的支持,也允许 一些 非 RDBMS 数据存储与相同的 API 一起使用(原来的这是DataNucleus JPA,但Hibernate 和EclipseLink 从那以后复制了它)。虽然您可以使用相同的 API 进行持久性,但您必须意识到您做出了一些妥协,因为查询语言并不总是适用于非 RDBMS 数据存储。没有计划(据我所知)为非 RDBMS 制定 JPA 规范。

JDO (Java Data Objects) 持久性规范适用于 RDBMS 和非 RDBMS,JDO API 更适合许多不同类型的数据存储。

【讨论】:

  • 你的意思是JPA只适用于RDBMS数据存储,但是关于nosql db的JPA有很多讨论和谈论,并且nosql db有一个Hibernate版本叫做Hobernate Object/Grid Mapper,什么你考虑一下吗?至于JPA规范,nosql db有没有新版本?
  • 我已经说过 JPA 仅适用于 RDBMS,所以这句话告诉您没有适用于非 RDBMS 的新版本。更新了提及 JDO API 的答案。本网站不适用于“您认为如何”类型的问题
  • 为什么他们将它用于nosql db呢?如您所说,这是针对 RDBMS db 的,nosql db 没有新版本?
  • 为什么?它们允许用户将 选项 用于非 RDBMS。供应商允许超出规范的额外选项并不违法
  • 鉴于 RDBMS 和 NoSql DBMS 之间存在很多差异,如何将 JPA(用于 RDBMS)用于 nosql db。这是如何工作的?
猜你喜欢
  • 2015-01-28
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 2017-05-15
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
相关资源
最近更新 更多