Подтвердить что ты не робот

Hibernate Native vs Hibernate JPA

На веб-сайте Hibernate говорится, что есть собственный API Hibernate, а также реализация JPA. В чем разница между Native API и реализацией JPA? Преимущества, недостатки?

Я работаю над приложением Spring MVC, используя Tomcat в качестве контейнера и MySQL для сохранения. Я использовал Doctrine и Entity для PHP и .NET соответственно в прошлом, используя первый подход кода. Я хотел бы иметь что-то подобное с Java. Я новичок в Spring и никогда не использовал Hibernate. Моя команда хотела бы использовать ORM, а Hibernate - самый популярный. Мы не знаем, как Hibernate собирается тренироваться или мы должны использовать native или JPA api. Приложение будет управляться данными, вводом данных, отчетами и т.д.

Я читал, что использование JPA упрощает переход на другую реализацию JPA, хотя я не знаю, будет ли это понадобиться или нет.

4b9b3361

Ответ 1

JPA - это стандарт для доступа к реляционным базам данных через объектно-ориентированный API. Hibernate - это реализация этого API. Если вы хотите использовать JPA, вам нужен какой-то поставщик для его реализации, Hibernate - хороший выбор, но есть другие, такие как EclipseLink.

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

В целом, IMO платит за использование стандартного API, здесь JPA, и принимает опытные решения по реализации.

Большинство учебников, которые используют Hibernate изначально, довольно старые - как и Hibernate 3, релиз до JPA. Хотя есть веские причины использовать его, они (ИМО) обычно не относятся к общей аудитории. Поэтому, если вы только начинаете учиться в этой области, я бы предложил начать с JPA.

Что касается рекомендаций по внешним ресурсам: по уважительным причинам они здесь не по теме. Но текущая официальная документация Hibernate будет хорошим началом, так же как и поиск тотального по крайней мере для Hibernate 4.