2014-12-13 5 views
28

Я читал о них через различные ресурсы. Importants из них являются: -JPA против ORM vs Hibernate?

  1. Статья Википедии о каждом из них
  2. What's the difference between JPA and Hibernate?

Вот мое понимание о Что разница в ч/б их. Я не уверен, если я прав насчет JPA против ОРМ

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

  2. Hibernate: Его реализация выше концепции.

  3. JPA: Его один шаг выше ORM. Его API высокого уровня и спецификация, чтобы различные инструменты ORM могли реализовывать так, чтобы он предоставлял гибкость разработчику для изменения реализации с одного ORM на другой (например, если приложение использует JPA api, а реализация - спящий режим. переключиться на Ibatis при необходимости. Но с другой стороны, если приложение непосредственно заблокировать реализацию с Hibernate без платформы JPA, switiching будет сложнейшая задача)

Там может быть реализация ORM с/без JPA specification.For пример в соответствии с этим link только в разделе спящего режима Спящий режим версии 3.2 и более поздних версий обеспечивает реализацию Java Persis tens API

+0

Вы абсолютно правы. ORM - это просто название концепции или отображения OO -> RMDBS. JPA - это Java Persistence API, указанный как часть спецификации JavaEE. Hibernate - одна из реализаций или API. Существует множество версий JPA, а разные версии Hibernate реализуют разные версии JPA API. –

+1

Я не уверен, почему он получил отрицательный голос, который тоже за 5 секунд после публикации. Был бы признателен, если бы downvoter может дать мне обратную связь, чтобы я мог улучшить в следующий раз –

+0

@BoristheSpider Thanx. Я тоже правильно отношусь к JPA? –

ответ

21
  1. ORM - это подход к объектно-ориентированным данным и отображению в реляционный хранилище данных (например, СУРБД)

  2. Hibernate является реализацией рамок ОРМА

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

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

+0

Hibernate - это реализация JPA или ORM? Bit confused .. –

+1

Hibernate - это реализация спецификации JPA, которая сама является частью спецификации Java EE. ORM - это подход отображения объектов в реляционные таблицы. –

1

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

Сво один шаг выше ОРМ

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