質問

かなり大規模な J2EE プロジェクトで EJB 3 を使用しています。Netbeans のデフォルトでは、エンティティ Bean の永続プロバイダが TopLink に設定されています。プロバイダーを次のいずれかに変更したり、新しい永続ライブラリを追加したりするオプションがあります。

  • 休止状態
  • 鼓動
  • OpenJPA

どの永続化プロバイダーを使用したいですか?別のプロバイダーを使用するメリットは何ですか?

TopLink は優れているようですが、キャッシュなどの制御方法に関する優れたドキュメントはあまり見つかりません。助けていただければ幸いです。

役に立ちましたか?

解決

使用を検討できる JPA プロバイダーは 2 つだけです。

標準の JPA にこだわりたい場合は、EclipseLink を使用します。Toplink Essentials が JPA 1.0 のリファレンス実装であるのに対し、EclipseLink は基本的に TopLink Essentials コードを継承し、JPA 2.0 のリファレンス実装になります (出荷時に Glassfish V3 にバンドルされます)。2009 年 5 月の JavaOne の頃に予想されます)。TopLink Essentials は Oracle の商用 TopLink 製品の多少機能不全なバージョンでしたが、EclipseLink には基本的に TopLink が持つすべての機能が備わっています。

もう 1 つの選択肢は明らかに Hibernate です。広く使用されており成熟していますが、私が見た限りでは問題がないわけではありません。たとえば、最後に調べたところ、Hibernate には複数の 1 対多の熱心な関係を持つエンティティに関する問題があります。Hibernate に EclipseLink のバッチ クエリ ヒントと同等の機能があるかどうかはわかりませんが、この種の問題に対処するのに非常に便利な機能です。

もちろん、Hibernate は標準の JPA もサポートしています。Hibernate の最大の利点は、Hibernate の仕組みについて質問がある場合、Google 検索で答えが見つかる可能性が高いことです。

正直なところ、上記の 2 つのプロバイダー以外は検討しません。

他のヒント

次の理由から、Hibernate を強くお勧めします。

  • Java の世界で最も広く使用され、評価されているオープンソースの永続化レイヤー。巨大で活発なコミュニティがあり、大量のミッションクリティカルなアプリケーションで多く使用されています。
  • Spring などのアプリケーションの残りの部分で別のルートを選択したい場合でも、Hibernate は引き続き良好に動作するため、J2EE や特定のベンダーにまったく縛られる必要はありません。

Hibernate についてはかなり詳しく文書化されており、さまざまなキャッシュ テクノロジによって十分にサポートされていることがわかりました。また、私はこれを非 JPA コンテキストで他のものよりもかなり多く使用してきたので、おそらくそのせいで JPA に対して少し偏っているかもしれません。

TopLink Essentials で試したいくつかの小さなおもちゃのプロジェクトもかなりうまくいきましたが、キャッシュやプロバイダ固有のドキュメントを必要とするものには手を出しませんでした。一般に、それに対するコミュニティのサポートは少ないと思います。それが、私が Hibernate を使用することになる理由の 1 つです。

私は休止状態を使用しています。とても成熟していて、とてもうまく機能します。私は個人的に他のプロバイダーを使用したことがありませんが、Hibernate が最も完全な機能を備えた JPA プロバイダーの 1 つであることは知っています。また、非常に多くの人がそれを使用しているため、私がこれまでに抱えたほぼすべての問題は、少しグーグルするだけですぐに解決策を見つけることができます。

私は最近、Kodo JPA フレームワークで構築された大規模なエンタープライズ アプリケーションに取り組みました。Kodo によって生成された SQL は一般に、大量のデータに対してあまり拡張性がありませんでした。私の意見では、外部結合を使用したクエリが多すぎました。kodo をスケーリングする際に変更しなければならなかったマッピングの数を考えると、大規模なエンタープライズ アプリケーションにこれを使用することはお勧めしません。私たちが話を聞いたオラクルの担当者でさえ、顧客をkodoからTopLinkに引き離そうとしている。オラクルは将来的に kodo を段階的に廃止する可能性があります。

データ核 http://www.datanucleus.org また、完全に準拠した JPA プロバイダーでもあり、JPA1 およびいくつかのプレビュー JPA2 機能を備えています。

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