[解決済み] Hibernate vs JPA vs JDO - それぞれの長所と短所?[クローズド]。
質問
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の将来について誰の話を信じるかなど、他の要素もあります。
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
JSPで「リストが型解決できない!」の解決方法
-
IDEA パッケージステートメントの欠落
-
[解決済み] Jackson JSONとHibernate JPAによる無限再帰の問題
-
[解決済み】Hibernate SessionFactoryとJPA EntityManagerFactoryの比較。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
ファインバグタイプ
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
linux run jarfile Invalid or corrupt jarfile error.
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。