【问题标题】:Hibernate vs EclipseLink休眠与 EclipseLink
【发布时间】:2013-10-13 09:16:53
【问题描述】:

我正在开始一个新的 Web 项目,并且我选择了 JPA 作为我的持久性 ORM 引擎。

虽然我在上一个项目中使用过 OpenJPA,但现在我想使用 EclipseLink。

为什么?它是 JPA 参考实现,它有很多文档,并且在 Eclipse IDE 中有很好的支持。此外,我找不到任何基准声明它们都不是最好的,因此性能不是一个因素(所有实现都有自己的优势点)。

但是,我想使用 JSR-303 验证规范,并且我选择了 hibernate-validator(witch 是 Bean Validation 规范的参考实现)。

另外,我用的是Spring,有很多Spring+Hibernate的例子,但是我没有找到任何意见说Spring和Hibernate更好。

混合这两种实现有什么问题吗? 将 Hibernate JPA 与 Hibernate Bean 验证一起使用会更好吗?

【问题讨论】:

  • 我从未尝试将它与 Spring 结合使用——但在 Glassfish 中使用了 Hibernate Bean 验证和 EclipseLink....所以可用性得到了证明。我也更喜欢 EclipseLink 而不是 Hibernate,因为它自动支持延迟加载的扩展打开会话。
  • 所有 JPA 2 实现(如果符合)将允许使用任何 Bean 验证实现。如果某物是“参考实现”,则意味着它被用作证明 JPA 规范是可实现的一种方式……仅此而已

标签: java hibernate jpa eclipselink


【解决方案1】:

我一直在使用 EclipseLink 与 Spring 和 Hibernate-validation-4.2.0.Final 的 JPA 实现。到目前为止没有问题。现在回答你的问题:

混合这两种实现有什么问题吗?

我认为将EclipseLink JPA 实现与Hibernate 实现一起用于JSR-303 验证规范不会有任何问题,因为这两个规范的目的不同:

  • JSR 303 - Bean 验证 - 为实体验证定义元数据模型和 API。这与特定的应用层或编程模型无关。
  • JPA - 这是 Java API 规范,用于管理 Java EE 和 Java SE 的持久性和对象/关系映射。

Spring 完全支持 JSR-303 Bean Validation API。您只需要在类路径中存在一个 JSR-303 提供程序,例如 Hibernate Validator,并且会被自动检测到。

org.springframework.orm.jpa 包下的 Spring JPA 以与 Hibernate 集成类似的方式为 Java Persistence API 提供全面支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2011-12-24
    • 2012-12-11
    相关资源
    最近更新 更多