Разница между библиотекой Hibernate и библиотекой Hibernate JPA - PullRequest
4 голосов
/ 15 сентября 2011

На экране, где вы можете добавить библиотеку Hibernate в проект, есть две опции: Hibernate и Hibernate JPA.

В чем разница между 2? Поиск в Google не дал объяснения.

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Я нашел это, чтобы дать хорошее объяснение. http://elope.wordpress.com/2007/09/06/difference-between-jpa-and-hibernate/

Из вышеприведенного блога: Так что, если мне нужно выразить в сжатых словах:

a) JPA - это Persistence Api, который должен использовать ваш код.

b) JPA Api передает вызов фактическому провайдеру постоянных прав (например, Hibernate / TopLink) для выполнения фактической работы.

в) Если вы смотрите с точки зрения производительности, это будет зависеть от фактического поставщика постоянных данных (Hibernate / TopLink), а не от JPA, поскольку это просто слой-обертка.

d) Если вы смотрите с точки зрения зависимости кода, JPA имеет больше смысла, поскольку ваш код зависит от стандартного Java Api.

e) Если вы использовали Hibernate, то обнаружите, что в JPA отсутствуют определенные функции, например запросы критериев и т. Д. Это не означает, что вы не можете писать запрос критериев в своем приложении, вам нужно получить объект Session из JPA Менеджер сущностей и теперь вы так же хороши, как и в спящем проекте.

Но теперь ваш код зависит от Specific impl (Hibernate), в дальнейшем вы увидите, как в JPA добавляется больше вещей (2.0)

f) Если вы используете JPA: я полагаю, что вы должны, API чист, и хотя не все, что вам нужно, это их, но это хороший шаг вперед.

1 голос
/ 15 сентября 2011

Я не знаю, что вы подразумеваете под "экраном", но в целом вы можете использовать Hibernate напрямую (Hibernate API) или в качестве JPA провайдера.Поскольку JPA является стандартным API, можно кодировать этот API и переключаться между реализациями (Hibernate, EclipseLink, OpenJPA, ...).При использовании Hibernate API вы привязаны к этому, но вы можете использовать функции, которые не стандартизированы JPA.

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