Hibernate vs EclipseLink

Я начинаю новый веб-проект, и я выбрал JPA как мой механизм ORM настойчивости.

Хотя я использовал OpenJPA в своем последнем проекте, теперь я хочу использовать EclipseLink.

Почему? Это эталонная реализация JPA, у нее много документации и очень хорошая поддержка в Eclipse IDE. Кроме того, я не могу найти какой-либо бенчмарк, который заявляет, что ни один из них не является лучшим, поэтому производительность не является фактором (все реализации имеют свои собственные точки силы).

Но я хочу использовать спецификацию проверки JSR-303, и я выбрал hibernate-validator (ведьтера является эталонной реализацией спецификации Bean Validation).

Кроме того, я использую Spring, и есть много примеров с Spring + Hibernate, но я не нашел никакого мнения о том, что Spring лучше с Hibernate.

Есть ли проблема с смешиванием этих двух реализаций? Было бы лучше использовать Hibernate JPA с проверкой Hibernate Bean?

Ответ 1

Я использовал EclipseLink реализацию JPA с Spring и Hibernate-validation-4.2.0.Final. И никаких проблем до сих пор. Теперь, чтобы ответить на ваш вопрос:

Есть ли проблема с смешиванием этих двух реализаций?

Я не думаю, что возникнет проблема с использованием реализации EclipseLink JPA с реализацией Hibernate для спецификации проверки JSR-303 вместе, поскольку цель этих двух спецификаций различна:

  • JSR 303 - Bean Validation - определяет модель метаданных и API для проверки сущности. Это не привязано к определенному типу приложения или модели программирования.
  • JPA - это спецификация Java API для управления персистентностью и объектно-реляционным сопоставлением с Java EE и Java SE.

Spring обеспечивает полную поддержку API-проверки JSR-303 Bean. Вам просто нужно иметь поставщика JSR-303, такого как Hibernate Validator, который присутствует в пути к классам и будет обнаружен автоматически.

И Spring JPA, доступный в пакете org.springframework.orm.jpa, предлагает всестороннюю поддержку Java Persistence API аналогично интеграции с Hibernate.