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

JPA против ORM против Hibernate?

Я читал о них через различные ресурсы. Среди них: -

Вот мое понимание о том, в чем разница между ними. Я не уверен, что я прав насчет JPA против ORM

  • ORM: Реляционное сопоставление объектов - это концепция/процесс преобразования данных с объектно-ориентированного языка в реляционную БД и наоборот Например, в java это делается с помощью отражения и jdbc.

  • Спящий режим: Его реализация концепции выше.

  • JPA:. Это один шаг выше ORM. Его API и спецификации высокого уровня, чтобы различные инструменты ORM могли реализовывать так, чтобы они предоставляли гибкость для разработчика для изменения реализации с одного ORM на другой (например, если приложение использует JPA api и реализацию спящий режим. В будущем он может переключиться на IBatis, если потребуется. Но с другой стороны, если приложение напрямую блокирует реализацию с помощью Спящий режим без платформы JPA, переключение будет задачей геркулеса)

Может существовать реализация ORM с/без спецификации JPA. Например, в соответствии с этой ссылкой только в разделе спящего режима Hibernate версии 3.2 и более поздние версии обеспечивают реализацию для Java Persistence API

4b9b3361

Ответ 1

  • ORM - это подход к объектно-ориентированным данным и отображению в реляционный хранилище данных (например, RDBMS).

  • Hibernate - это реализация структуры ORM

  • JPA - стандартная спецификация EE для ORM в Java EE. Hibernate также является реализацией этой спецификации, поскольку вы можете использовать стандартные API JPA и настроить приложение для использования Hibernate в качестве поставщика спецификации под обложками.

Функции, предлагаемые Hibernate, также являются надмножеством функций ORM, указанных в спецификации JPA. Смысл, что, хотя он обеспечивает реализацию JPA api, он также предоставляет больше возможностей, помимо того, что указывает JPA.

Ответ 2

Единственная ошибка, которую вы, по-видимому, сделали в своем понимании, - это

Его один шаг выше ORM

Одно быстрое примечание. Библиотеки, начинающиеся с javax.persistence, связаны с JPA. Вы должны предпочесть эти библиотеки Hibernate, когда это возможно. Потому что это Portable. Тем не менее, вы получите дополнительные функции в Hibernate, и в этих точных случаях вы можете использовать Hibernate.