Какой провайдер должен использоваться для реализации API Java Persistence API (JPA)

Я хочу использовать Java Persistence API (JPA) для своего веб-приложения.

Существуют популярные реализации JPA, такие как Hibernate, Toplink и EclipseLink. Какая реализация - хороший выбор и почему?

Ответ 1

Когда был разработан Java Persistence API (API), он стал очень популярным. JPA описывает управление реляционными данными в приложениях с использованием Java.

JPA (Java Persistence API) - это интерфейс для реализации провайдеров непрерывности.

Hibernate - одна из таких реализаций JPA. Когда вы используете Hibernate с JPA, вы фактически используете реализацию JPA Hibernate.

JPA обычно определяет метаданные через аннотации в классе Java. Альтернативно через XML или их комбинацию. Конфигурация XML перезаписывает аннотации.

Реализации JPA:

  • Hibernate: самый передовой и широко используемый. Обратите внимание на classpath, потому что используется множество библиотек, особенно при использовании JBoss. Поддерживает JPA 2.1.
  • Toplink. Поддерживает только базовые спецификации JPA. (Это было без оракулов версия реализации JPA)
  • EclipseLink: основан на TopLink и является намеченным путем вперед для настойчивости для Oracle и TopLink. Поддержка JPA 2.1
  • Apache OpenJPA. Лучшая документация, но кажется очень ошибочной. Открытый исходный код для JPA. Поддержка JPA 2.0
  • DataNucleus. Хорошо документированный, открытый источник (лицензия Apache 2), также является поставщиком JDO. Поддержка JPA 2.1
  • ObjectDB: хорошо документировано

Другие подходы:

  • Обычный JDBC
  • ORM с Hibernate: Hibernate теперь также очень поддерживает JPA
  • iBatis: проект переместился в MyBatis (ссылка)
  • СДО

Мотивация для спящего режима как мой выбор JPA:

  • Зрелый проект:
    • Самый продвинутый
    • Хорошо документировано
  • Полезные подпрограммы Hibernate
    • Спящий режим: автоматическая генерация кода и создание базы данных
    • Проверка спящего режима: bean возможности спецификации. Интегрируется с JPA2
    • Поиск в спящем режиме: мощный полнотекстовый поиск объектов домена
  • Активное сообщество
    • Большое сообщество разработчиков
    • Широко используется

Hibernate стала быстродействующей версией JPA очень быстро после публикации окончательной спецификации. Он имеет богатый набор функций и быстро генерирует новые функции, поскольку процесс разработки с открытым исходным кодом, как правило, быстрее, чем процесс сообщества Java.