14

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

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

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

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

此外,我使用的是Spring,并且有很多使用Spring+Hibernate的例子,但我没有发现任何意见说Spring与Hibernate更好。

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

4

1 回答 1

10

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

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

我认为将EclipseLinkJPA 实现与HibernateJSR-303 验证规范的实现结合使用不会有任何问题,因为这两个规范的目的是不同的:

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

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

org.springframework.orm.jpa包下提供的 Spring JPAJava Persistence API以类似于与Hibernate.

于 2013-10-07T07:48:34.827 回答