【问题标题】:OODB JPA implementation difference with HibernateOODB JPA 实现与 Hibernate 的区别
【发布时间】:2011-12-12 14:21:01
【问题描述】:

我已经有一些使用 Hibernate 的经验,但是,如果我是正确的,没有办法使用它来访问像 Versant 的 VOD 这样的对象数据库。因为他们刚刚发布了preview with JPA support,所以我想知道我是否可以利用我有限的 Hibernate 技能将对象数据库与 JPA 一起使用。如果有人有经验,请告诉我这些版本是否兼容。

最好的。

哈利

【问题讨论】:

    标签: hibernate jpa object-oriented-database versant-vod


    【解决方案1】:

    让我先声明一下:我是 Versant JPA 的开发人员之一。

    要使用 Versant JPA,具备基本的 JPA 技能就足够了。

    我们提供了安装后立即可用的教程 “Versant JPA”技术预览和提供的 Eclipse 插件。只需查看此内容和提供的“Versant JPA 入门”手册,即可初步了解它的易用性。

    我不同意 DataNucleus 的一些说法: 是的,Versant 是 ODBMS 而不是 RDBMS,因此我们忽略任何特定的内容 映射 - 您的 Java 数据模型实际上与 Versant 数据库中的数据模型相同。 然而,除了所有与映射相关的东西之外,JPA 也是对象数据库的自然 API。我不同意,JPQL 的设计与 JPA 的设计考虑了 RDBMS 的事实之间存在很大的相关性。 (实际上微软已经通过将 LINQ 抽象到与数据存储无关的级别来证明这一点。)

    Versant JPA 和基于 RDBMS 的 JPA 实现之间的所有重大差异都在我们的“JPA 入门”指南的单独章节中进行了描述。 最大的限制可能是我们的限制,即拥有“long”或“java.lang.Long”类型的@Id 字段,这是由我们的运行时自动设置的。

    我们也有一个 JDO 实现,但我建议尝试我们的 Versant JPA 技术预览(正如术语“预览”所暗示的,它的功能还不完整)。

    克里斯蒂安·罗姆伯格

    【讨论】:

      【解决方案2】:

      如果您使用对象数据库,为什么需要 Hibernate? Hibernate 是一个 ORM 工具,代表对象-关系映射。如果您不使用关系数据库,那么 Hibernate 有什么用?

      Here's 声称与 JPA 一起工作的 ODB;也许你可以适应或效仿 Versant 的 VOD。

      【讨论】:

        【解决方案3】:

        您不会对不同的软件使用任何“休眠技能”;你使用你的 JPA 技能。它是一个标准的 API,因此具有相同的元数据和相同的持久性代码的相同类。唯一不同的是您可能在persistence.xml 中使用一些不同的持久性属性。

        不用说,JPA 只是围绕 RDBMS 设计的,并且各个部分(尤其是 JPQL)显然不适用于 ODBMS,因此它不像您希望的那样适合该数据存储的 API,以及像 JDO 会更适合(VOD 也支持 IIRC)......但无论如何

        【讨论】:

        • Versant 的 JPA 实现包括对 JPQL 的支持。它是一个很好的查询 API,用于表达基于谓词的查询表达式,涉及逻辑运算符、基于集合的操作、聚合等,并且这些结构都将由底层对象数据库支持。 API 的主要目的是为想要尝试大数据 NoSQL 技术的人提供一个风险很小的选项。 Hibernate/JPA 方面的专家可以在没有映射过程的情况下使用 Versant(无论模型多么复杂),如果性能和规模不规则,请插入 RDB 驱动程序。
        猜你喜欢
        • 2010-10-31
        • 2013-02-06
        • 2011-11-17
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        • 2011-04-23
        • 1970-01-01
        相关资源
        最近更新 更多