2

我已经有一些使用 Hibernate 的经验,但是,如果我是正确的,没有办法使用它来访问像 Versant 的 VOD 这样的对象数据库。由于他们刚刚发布了支持 JPA 的预览版,我想知道是否可以使用我有限的 Hibernate 技能来使用 JPA 的对象数据库。如果有人有经验,请告诉我这些版本是否兼容。

最好的。

哈利

4

3 回答 3

4

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

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

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

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

All the big differences between Versant JPA and RDBMS based JPA implementations are described in a separate chapter in our "Getting Started with JPA" guide. The biggest one might be our restriction, to have an @Id field of type "long" or "java.lang.Long", which is automatically set by our runtime.

We do also have a JDO implementation, but I would recommend to try out our Versant JPA technical preview (as the term "preview" suggests, it is not feature complete yet).

Christian Romberg

于 2011-12-13T14:10:12.327 回答
1

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

这是一个声称可以与 JPA 一起使用的 ODB;也许您可以适应或效仿 Versant 的 VOD。

于 2011-12-12T14:26:19.977 回答
0

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

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

于 2011-12-12T14:48:55.453 回答