1. ホーム
  2. java

[解決済み] Hibernate vs JPA vs JDO - それぞれの長所と短所?[クローズド]。

2022-04-21 17:55:10

質問

ORMという概念には馴染みがあり、数年前に.NETのプロジェクトでnHibernateを使ったこともあります。しかし、JavaのORMの話題にはついていけず、これらのツールを使う機会はありませんでした。

しかし、今、あるアプリケーションで、一連のレガシーなWebサービスから脱却するために、いくつかのORMツールを使い始める機会があるかもしれません。

JPAの仕様、Hibernateのライブラリそのもの、JDOが提供するものとの違いを説明するのに苦労しています。

そこで、この質問は少し開放的であることは理解しているのですが、何か意見を頂ければと思い質問させて頂きました。

  • それぞれの長所と短所を教えてください。
  • 新しいプロジェクトには、どちらをお勧めしますか?
  • あるフレームワークと他のフレームワークを使用する意味がある条件はありますか?

どのように解決するのですか?

注意事項

  • JDOとJPAはどちらも仕様であり、実装ではありません。
  • 標準的なJPAのみを使用するようにコードを制限すれば、JPAの実装を入れ替えることができるということです。 (JDOについても同様です)。
  • Hibernateは、そのようなJPAの実装の1つとして使用することができます。
  • しかし、HibernateはネイティブAPIを提供し、JPA以上の機能を備えています。

IMOでは、Hibernateをお勧めします。


というコメント/質問がありました。 必要 を使用して、Hibernate 固有の機能を使用することができます。 いろいろな見方がありますが、私のアドバイスとしては

  • ベンダーとのタイアップが心配でなければ、Hibernateと他のJPAやJDOの実装のどちらかを選択する。 を含む ベンダ固有のさまざまな拡張機能を考慮した上で決定してください。

  • もし、ベンダーとのタイアップが心配で、ベンダー固有の拡張に頼らないとJPAを使えないのであれば、JPAは使わないでください。 (JDOも同様です)。

現実には、おそらく以下のようなトレードオフが必要でしょう。 どの程度 ベンダーのタイアップを気にするのか、それとも どの程度 そのベンダー固有の拡張機能が必要な場合。

さらに、あなたやあなたのスタッフがそれぞれの技術についてどの程度知っているか、製品のライセンス費用がどの程度かかるか、JDOとJPAの将来について誰の話を信じるかなど、他の要素もあります。