34

以下の JPA 実装を利用しました。

  1. 冬眠、
  2. トップリンク、
  3. OpenJPA

それぞれに独自の長所と短所があります。Hibernate は 3 つの中で最も先進的であることがわかりましたが、Hibernate は独自の拡張機能のいくつかを JPA と混合していたため、他のプロバイダーへの切り替えが困難でした。最も重要なことは、JPA を解釈するときのクエリ パーサーがはるかに寛大であることです。すべての依存関係の適切なバージョンを取得しようとするのが使命であることがわかったため、休止状態をサポートするための適切なライブラリを取得するのが少し難しくなります。

Toplink は問題ありませんでしたが、オラクルが使用/購入を望んでいるように見えるため、少し不自由な感じが残っていますか? 彼らのより高度なライブラリ。jarファイルを実行してインストールする必要があるため、ダウンロードを試みることも使命でした. ベースの JPA 仕様のみを実装していることがわかりました。私がそれを使用した理由は、休止状態が他のオープンソースプロジェクトで一般的に使用されている多くのライブラリを使用していたため、特に JBoss を使用する場合にクラスローダーの問題が発生することがよくあるからです。

OpenJPA - これには最高のドキュメントがあり、ダウンロードして使用するのは簡単ですが、非常にバグが多いようです。たぶん私のコードだけかもしれませんが、CascadeType.all セットとの OneToMany 関係など、より高度な使用法を見つけたコードは機能していないようです。確かに、私のコードが間違っていた可能性があり、クリーンなケースをテストする時間はありませんでしたが、このような多くのインシデントにより、コードを使用するのが怖くなりました。良くなることを本当に願っています。そのエラー メッセージは、問題の解決に役立たないことがよくあります。

人々が使用した他のライブラリは何ですか? また、どのライブラリが好まれていますか? その理由は?

4

3 に答える 3

18

私はこれらの実装について同じ結論を出しました。

  1. OpenJPA にはバグがあった/バグがあるように見えた

  2. Hibernate には大量のライブラリがあり、すべてを遅延ロードしないことに問題があったようです。

  3. Toplinkが私の選択になりました。Hibernate ほど柔軟ではありませんでしたが、機能し、commons-loggingをインストールする必要はありません。

次に試すのは、最近datanucleusに名前が変更された JPOXです。

于 2009-02-23T06:22:07.303 に答える
7

個人的には、OpenJPAはまだ十分に成熟しているとは感じていません。より成熟した他のオープンソースライブラリがあり、私はむしろそれらを使用したいと思います。これらは私が順番に検討するものです:

  1. Hibernate。Hibernateは長い間存在しており、JavaでのORMへの道を実際に開いてきました。私がHibernateで抱えている唯一の問題は、ライセンスです。これはLGPLライセンスであり、一部の営利企業が騒ぎ立てる可能性があります(理由はここでは説明しません)。とにかく、LGPLがあなたにとって問題であるなら、明確に操縦するのはおそらく良いことです。

  2. EclipseLink。eclipselinkの背景。Toplink Essentialsは、OracleのJPA実装の無料バージョンでした。EclipseLinkは、Oracleの本格的なJPA実装であるToplinkから取得されました。EclipseLinkはGlassfishv3.0のJPA2.0プロバイダーになるため、すべてがToplinkEssentialsからEclipseLinkに移行しているように見えます。EclipseLinkのバージョンはわずか1.0.2ですが、この製品は他の名前で長い間使用されてきました。

私が取り組んでいるプロジェクトは現在ToplinkEssentialsにありますが、まもなくEclipselinkに切り替える予定です。Hibernateは、前述のライセンスの問題に対応していました。

于 2009-02-23T13:51:59.953 に答える
4

OpenJPAはKodoとして知られており、BEAがかなり前に購入したものです。KodoはJDOの実装であり、現在はJPAです。また、OpenJPAを非常に集中的に使用しています。したがって、私はそれが成熟していないとは言いません。それは問題ありませんが、Hibernate、つまりHibernateの周りのJPAラッパーを使用することをお勧めします。

理由?1)JPAはHibernateと非常によく似ています。2)多くの職位にはHibernateの要件があります。主流の製品に傾倒する方が良いです...基本的に

于 2009-02-24T15:55:59.320 に答える