JPA - Hibernate - PullRequest
       11

JPA - Hibernate

14 голосов
/ 23 декабря 2008

Может ли кто-нибудь представить в перспективе разницу между JPA и Hibernate. Или эти дополнительные понятия должны использоваться вместе?

Ответы [ 3 ]

17 голосов
/ 23 декабря 2008

Грубо говоря, JPA - это стандарт от сообщества Java, здесь спецификации , который был реализован (и расширен) парнями из Hibernate ( некоторая информация здесь ). Будучи спецификацией, вы будете использовать не JPA напрямую, а реализацию JPA.

Помните, что если вы будете использовать расширения JPA в спящем режиме, вы нарушите совместимость с другими реализациями JPA (хотя некоторые скажут: «Почему вы должны использовать другую реализацию JPA?»).

5 голосов
/ 02 января 2009

Обновление 2015: это очень старый вопрос, и многое изменилось за последние ~ 6 лет. API-интерфейсы JPA в наши дни довольно многофункциональны, и я рекомендую использовать JPA, поскольку все больше и больше инструментов и сред адаптируются к нему. Одним из примеров является Spring Data JPA: он удаляет множество шаблонов для общих задач и является феноменально продуктивным:

http://projects.spring.io/spring-data-jpa/

Оригинальный ответ: Я повторю комментарии cheng81, а также проголосую за использование простых API Hibernate. Набор функций JPA меньше, чем у Hibernate, и я не вижу причин ограничивать себя «чистым JPA» только потому, что это «стандарт».

0 голосов
/ 15 ноября 2011

Hibernate - действительно хорошее решение, однако его лицензия (GPL) означает, что его нельзя использовать в некоторых проектах.

JPA - это спецификация, которая поддерживает ряд реализаций, включая Hibernate, а также OpenJPA и другие продукты с другими характеристиками.

Если вы можете обойтись без использования только Hibernate, возможно, стоит сделать это, поскольку он зрелый, стабильный и хорошо работает. Тем не менее, если вам нужно включить механизм персистентности в продукт, который поставляется с лицензией не-GPL, вам нужно пойти по пути JPA (или заплатить за коммерческую лицензию Hibernate).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...