JPA实现 - 哪个是最好的选择?[已关闭]

9 浏览
0 Comments

JPA实现 - 哪个是最好的选择?[已关闭]

我使用过以下JPA实现:

  1. Hibernate
  2. Toplink
  3. OpenJPA

它们各有优缺点。我觉得Hibernate是其中最先进的一个,但它将一些自身增强功能与JPA混合在一起,导致难以切换到其他提供者。最重要的是,它的查询解析器在解释JPA时更加宽容。获取适用于Hibernate的正确库稍微有些困难,因为我发现很难找到所有依赖项的正确版本。

Toplink还可以,但给人留下一种感觉,似乎Oracle希望你使用/购买他们更高级的库。下载它也是一项挑战,因为你需要通过运行一个jar文件来安装它。我发现它只实现了基本的JPA规范。我使用它的原因是Hibernate使用了许多在其他开源项目中常用的库,经常会出现类加载器问题,尤其是在使用JBoss时。

OpenJPA - 它有迄今为止最好的文档,并且易于下载和使用,但它似乎存在很多bug。也许只是我的代码有问题,但我发现一些更高级的用法,比如设置CascadeType.all的OneToMany关系似乎不起作用。诚然,可能是我的代码有问题,我还没有时间测试一个干净的案例,但是许多类似的情况让我不敢使用它。我真心希望它能变得更好。它的错误信息通常对于解决问题没有什么用处。

其他人使用过哪些库?他们更喜欢哪些库?为什么?

0