3

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

  • 休止状態
  • 鼓童
  • OpenJPA

どの持続性プロバイダーを使用したいですか? 別のプロバイダーを使用する利点は何ですか?

TopLink は良さそうに見えますが、キャッシングなどを制御する方法に関する適切なドキュメントはあまり見つかりません。

4

6 に答える 6

7

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

標準のJPAに固執したい場合は、EclipseLinkを使用します。ToplinkEssentialsはJPA1.0のリファレンス実装ですが、EclipseLinkは基本的にTopLink Essentialsコードを継承し、JPA 2.0のリファレンス実装になります(出荷時にGlassfish V3にバンドルされます。2009年5月にJavaOneでリリースされる予定です)。TopLink Essentialsは、Oracleの商用TopLink製品のやや機能不全のバージョンでしたが、EclipseLinkは基本的にTopLinkが持つすべての機能を備えています。

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

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

私は正直に言って、上記の2つのプロバイダー以外は考慮しません。

于 2008-09-19T00:34:53.843 に答える
2

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

  • Java の世界で最も広く使用され、尊敬されているオープン ソースの永続化レイヤー。大規模で活発なコミュニティと大量のミッション クリティカルなアプリケーションでの多くの使用。
  • Hibernate は引き続き適切に機能するため、Spring などのアプリケーションの残りの部分で別のルートに進みたい場合は、J2EE や特定のベンダーに縛られる必要はまったくありません。
于 2008-09-19T00:00:33.537 に答える
2

Hibernate はかなりよく文書化されており、さまざまなキャッシング技術によって十分にサポートされていることがわかりました。また、JPA以外のコンテキストで他のものよりもかなり多く使用しているため、おそらくそのために少し偏っています。

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

于 2008-09-19T00:01:32.817 に答える
1

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

于 2008-09-19T00:02:34.997 に答える
0

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

于 2008-09-19T21:15:54.553 に答える
0

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

于 2009-03-21T14:27:23.597 に答える