2013-10-06 3 views
12

Я начинаю новый веб-проект, и я выбрал JPA как двигатель ORM.Hibernate vs EclipseLink

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

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

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

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

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

+2

Я никогда не пробовал это в сочетании с Spring - но проверка Hibernate Bean и EclipseLink используются в Glassfish .... поэтому юзабилити доказано. Я также * предпочитаю * EclipseLink для Hibernate, потому что он автоматически поддерживает расширенный открытый сеанс для ленивой загрузки. – cljk

+0

Все реализации JPA 2 (если они совместимы) позволят использовать ANY Bean validation. И если что-то является «эталонной реализацией», это означает, что это использовалось как способ доказать, что спецификация JPA реализуема ... * ничего более *. – DataNucleus

+0

Возможный дубликат [Hibernate или EclipseLink для JPA?] (Http://stackoverflow.com/questions/3234829/hibernate-or-eclipselink-for-jpa) – Dinei

ответ

9

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

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

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

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

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

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

Смежные вопросы