0

Java EE 5 での Hibernate と単純な永続性の違い/類似点を知りたいですか?

Hibernate が Java EE 5 永続化の実装を実装しているのか、それともバックエンド システムでのデータ表現に対するまったく異なるアプローチなのかはわかりません。

Hibernate と、Java EE 5 チュートリアルで説明されている Java 永続性に関する概念との関係について混乱しています... エンティティと EJB のコンテキストにおける Hibernate の役割を明確にしていただけますか?

また、JPAやSpringなどの他のアプローチ(フレームワーク)も知りたい...

4

4 に答える 4

4

Java EE 5 での Hibernate と単純な永続性の違い/類似点を知りたいですか?

Java EE 5の標準化された持続性APIは JPA 1.0 であり、EJB 2 CMP、JDO、Hibernate、および TopLink API および製品の一種の統合バージョンです。Hibernate は、JPA より前の ORM フレームワークであり、JPA の仕様に大きな影響を与えてきました (Hibernate の作成者は、JPA の背後にある専門家グループのメンバーです)。JPA は単なる API であり、使用するには JPA の実装が必要であることに注意してください。

Hibernate が Java EE 5 の永続化実装を実装しているのか、それともバックエンド システムでのデータ表現に対するまったく異なるアプローチなのか、私にはよくわかりません。

はい、Hibernate は、Hibernate EntityManagerプロジェクト ( Hibernate Coreに依存する) を介して JPA の実装を提供します (また、それを拡張します。Hibernate は JPA のスーパーセットです)。

Hibernate と、Java EE 5 チュートリアルで説明されている Java 永続性に関する概念との関係について混乱しています... エンティティと EJB のコンテキストにおける Hibernate の役割を明確にしていただけますか?

Hibernate は、JPA 永続化プロバイダーとして、つまり実際に EJB 3 エンティティを永続化するコードとして使用できます (JPA 仕様は、バージョン 1.0 では EJB 3.0 仕様の一部でしたが、現在は別の仕様になっています)。

また、JPAやSpringなどの他のアプローチ(フレームワーク)も知りたい...

Spring は永続化フレームワークではなく、Spring は IoC コンテナーであり、Hibernate と競合しません。

Hibernate の JPA 準拠の代替手段には、TopLink Essentials (Java EE 5 の RI)、EclipseLink (Java EE 6 の JPA 2.0 の RI でもある)、OpenJPA、DataNucleus があります。

永続化のその他のオプションには、JDO (別の標準化された永続化 API)、iBATIS (ORM ではなく、データ マッパー)、JDBC (低レベル API) などがあります。

概要と歴史的背景については、この前の回答を確認してください。

于 2010-04-27T22:52:02.500 に答える
1

JPA (Java EE 5 永続性標準) が JCP エキスパート グループ (JSR 220) によって開発されたとき、既存の Hibernate (同じく JDO) から多くのアイデアが取り入れられました。Hibernate の創設者である Gavin King 自身も専門家グループの一員です。

最終的な JPA 仕様が公開された後、Hibernate はそのオープン ソース実装になりました (バージョン 3.2 以降)。Hibernate にはまだ豊富な機能セットがあり、通常、オープンソース開発プロセスは Java コミュニティ プロセスよりも高速である傾向があるため、新しい機能をより迅速に生成します。

JPA のその他の実装は次のとおりです。

  • データニュークリアス
  • EclipseLink
  • OpenJPA

その他のアプローチは次のとおりです。

  • JDO
  • iBatis
  • プレーンな JDBC
于 2010-04-27T22:51:00.600 に答える
0

トピックから少し外れますが、JPA は「セッション指向」アーキテクチャを意味します。つまり、Bean が EntityManager にアタッチ/デタッチされ、entityManager を永続化/マージ/フラッシュします。

ORM への「セッションレス」アプローチ (アタッチ/デタッチされた永続/マージ/フラッシュなし) を探している場合は、マッピングに JPA アノテーションも使用する Ebean ORM を参照することもできます。これを「Ebean は永続コンテキストの自動管理を提供する」と説明することもできます。

于 2010-05-05T22:28:59.323 に答える
0

EE5 に記載されている JPA 仕様は単なる仕様です。これは製品ではないことを意味します。JPAは、さまざまなプロバイダーが「JPA苦情」になるために達成しなければならない一連の定義にすぎません

Hibernate は単なる「プラグ可能な」永続化プロバイダーです。これは、この製品が JPA 仕様で指定された定義を実装していることを意味します。TopLink や Apache の OpenJPA など、他の同様の製品を見つけることができます。

それだ。

于 2010-04-27T22:58:07.233 に答える