質問

Java EE 5の冬眠と単純な持続性の違い/類似性を知りたいですか?

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

Hibernateとその関係については、Java EE 5チュートリアルで与えられたJavaの持続性に関する概念との関係について混乱しています...エンティティとEJBの文脈におけるHibernateの役割を明確にすることができますか?

また、JPAや春のような他のアプローチ(フレームワーク)を知りたいです...

役に立ちましたか?

解決

Java EE 5の冬眠と単純な持続性の違い/類似性を知りたいですか?

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

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

はい、hibernateはJPAの実装を提供します(また、それを拡張します、HibernateはJPAのスーパーセットです) Hibernate EntityManager プロジェクト(依存しています 冬眠コア).

Hibernateとその関係については、Java EE 5チュートリアルで与えられたJavaの持続性に関する概念との関係について混乱しています...エンティティとEJBの文脈におけるHibernateの役割を明確にすることができますか?

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

また、JPAや春のような他のアプローチ(フレームワーク)を知りたいです...

春は永続的なフレームワークではなく、春はIOCコンテナであり、冬眠と競合するものではありません。

HibernateのJPA準拠の代替品には、TopLink Essentials(Java EE 5のRI)、Eclipselink(Java EE 6のJPA 2.0のRI)、OpenJPA、Datanucleusが含まれます。

持続性のその他のオプションには、JDO(別の標準化された持続性API)、Ibatis(ORMではなく、データマッパーです)、JDBC(低レベルAPI)が最も有名なものを引用します。

これをチェックして 前の答え 概要といくつかの歴史的背景。

他のヒント

JPA(Java EE 5 Persistence Standard)がJCP Expert Group(JSR 220)によって開発されたとき、既存のHibernate(JDOから)から多くのアイデアが取られました。 Hibernate自身の創設者であるGavin Kingは、とりわけ専門家グループの一員です。

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

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

  • Datanucleus
  • eclipselink
  • openjpa

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

  • JDO
  • イバティス
  • プレーンJDBC

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

Hibernateは、もう1つの「プラグ可能な」永続性プロバイダーにすぎません。これは、この製品がJPA仕様によって与えられた定義を実装することを意味します。 TopLinkやApacheのOpenJPAなど、他の同様の製品を見つけることができます。

それだ。

わずかに話題から外れていますが、JPAは「セッション指向の」アーキテクチャを意味します。それはあなたの豆がentityManagerに取り付けられ/分離され、あなたはentityManagerを持続/マージ/フラッシュします。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top