web-dev-qa-db-ja.com

JPA vs ORM vs Hibernate?

私はさまざまなリソースを通じてそれらについて読みました。重要なものは:-

  1. それぞれについてのウィキペディアの記事
  2. JPAとHibernateの違いは何ですか?

違いは何なのか私の理解です。 JPA対ORMについて正しいかどうかわからない

  1. ORM:オブジェクトリレーショナルマッピングは、データをオブジェクト指向言語からリレーショナルDBに、またはその逆に変換する概念/プロセスです。例:Javaは、リフレクションとjdbcを使用して完了しました。

  2. Hibernate:上記の概念の実装。

  3. JPA:そのORMの1つ上のステップ。さまざまなORMツールが実装できるように高度なAPIと仕様を備えているため、開発者は1つのORMから別のORMに実装を変更できます(たとえば、アプリケーションがJPA APIを使用し、実装が休止状態の場合。 IBatisが必要な場合。ただし、アプリケーションがJPAプラットフォームなしでHibernateを使用して実装を直接ロックする場合、スウィッチは非常に困難な作業になります)

JPA仕様の有無にかかわらずORM実装が可能です。たとえば、このように link hibernateセクションでは、Hibernateバージョン3.2以降のみがJava Persistence APIの実装を提供します

44
M Sach
  1. ORMは、オブジェクト指向のデータを取得し、リレーショナルデータストア(RDBMSなど)にマッピングするアプローチです。

  2. HibernateはJPAの実装であり、ORMテクニックを使用します。

  3. JPAは、Java EE。カバーの下の仕様。

Hibernateが提供する機能は、JPA仕様で指定されているORM機能のスーパーセットでもあります。つまり、JPA APIの実装を提供する一方で、JPAが指定する以上の機能も提供します。

28
Kevin Hooke

あなたがあなたの理解で犯したと思われる唯一の間違いは

ORMの1つ上のステップ

1つの簡単なメモ、javax.persistenceで始まるライブラリはJPAに関連付けられています。可能な限り、これらをHibernateライブラリよりも優先する必要があります。これらはポータブルだからです。ただし、Hibernateにはいくつかの追加機能があります。これらの正確な場合は、Hibernateを自由に使用してください。

1
Miguel Ángel