web-dev-qa-db-ja.com

JPAとEBeanPlayFrameworkの違い

私はPlayフレームワークに比較的慣れていないので、クックブックをフォローしてみましたが、すでに古くなっているようです。とにかく、私が言及したものの間に大きな違いがあるかどうかを知りたいだけです。

一部のチュートリアルではeBeanを使用し、他のチュートリアルではjpaを使用しました。私は本当に混乱しています。

14
xxxo_tryme

Play 2.3では、JPAに戻ります。 Typesafeの開発者アドボケイトであるJamesWardは、JPAで新しいプロジェクトを開始するように言った: https://Twitter.com/_JamesWard/status/4169771920194560 (または具体的にはHibernate)

Play 2.3の公式ロードマップは次のとおりです。 https://docs.google.com/document/d/11sVi1-REAIDFVHvwBrfRt1uXkBzROHQYgmcZNGJtDnA/pub

JPAに戻す決定の背後にあるいくつかの理由:「[2.3ロードマップ] -DevTeamへの質問:2.3でEbeanがJPAに置き換えられると見なされるのはなぜですか?」 https://groups.google.com/forum/#!searchin/play-framework/2.3/play-framework/7pL-Gq_pj7M/UykJdAC6wyYJ

そして最後に、JamesWardがgithubで基本的なPlayJPAの例を作成しました: https://github.com/jamesward/play-Java-jpa

検索とページングの例を使用して拡張する必要がありますが、それは始まりです。 Play 2.3 JPA/Hibernateの良いベストプラクティスの例を他の誰かが見つけたら、聞いていただければ幸いです。

18
Brian Porter

ここで同じ質問に答えました: https://groups.google.com/forum/#!topic/play-framework/6OR1Osf4AA

JPAは、多くのライブラリが実装する標準です。 EbeanはJPA標準の一部を使用します。 Ebeanは、モデルにJPAアノテーションを付けることを期待しています。したがって、Ebeanは部分的にJPAの実装であるため、EbeanとJPAのどちらが良いかという質問に答えるのは奇妙です。 Play 2は、JPA標準をより完全に実装するHibernate統合も提供する可能性があると思いますが、おそらくあなたが求めていたのは何ですか? HibernateはJavaコミュニティではるかに広く使用されています。Play2を試したときにEbeanに切り替えましたが、振り返りませんでした。Hibernateにはトリッキーな落とし穴がたくさんあったので、Hibernateよりもずっと好きです。いつもつまずいて、ebeanでこれらの問題を見つけていません。

17
cosmolev

Ebean ORMとJPA(およびHibernate)の違いに関するより技術的な詳細に興味がある場合、したがってEbeanが最初に存在する理由を確認できます。

http://ebean-orm.github.io/architecture/compare-jpa

要するに、2つの主要な問題があります:

  • Ebean ORMは "sessionless"ORMです(したがって、セマンティクスをアタッチ/デタッチしない、管理するEntityMangerがないなど)

  • Ebean ORMのクエリ言語は、オブジェクトグラフの構築を最適化するように設計されています(部分オブジェクトをサポートおよびN + 1-オブジェクトグラフがどれほど複雑であっても、EbeanでN +1の問題が発生することはありません)。

部分オブジェクトの詳細については、以下を参照してください。

http://ebean-orm.github.io/docs/query/partialobjects

N + 1の詳細については、以下を参照してください。

http://ebean-orm.github.io/docs/query/nplus1

7
Rob Bygrave

EBeanの方が使いやすいです。 Playに付属しているサンプルアプリComputerDatabaseを見てください。 EBeanが現在のデフォルトであるため、Playの学習中にEBeanを使用することをお勧めします。

ただし、将来はJPAであるため、思い切って学習することをお勧めします。 Playに付属しているサンプルのComputerDatabaseJPAがあります。

3
IanRae