GoogleAppEngineで実行されるGrailsアプリケーションにJDOまたはJPAを選択することの長所と短所
私doなぜJDOを選ぶのかわかります。他のポスターが参照している「デフォルト」とは何かわからない。 JDOはデータストアに依存しません。 JPAはそうではありません。 JDOはフェッチグループを許可します。 JPAはそうではありません。 JDOはデータストアIDを許可します。 JPAはそうではありません。 JDOはデータストアトランザクションを許可します。 JPAはそうではありません。これはすべて公記録です http://db.Apache.org/jdo/jdo_v_jpa.html
JDOとJPAは同じ問題領域を埋めません。それらはRDBMSに対してのみ重複します。 JPAはRDBMS用にのみ設計されています。 http://db.Apache.org/jdo/jdo_v_jpa_api.html でのAPI比較から明らかなように、JPAは単純ではありません。
--Andy(DataNucleus)
AppEngine用にビルドしている場合、JDOを使用すると、道路が短くなり、問題が少なくなります。それ以外の場合は、JDOエンジンの周囲にJPAレイヤーがあります。
ちなみに、Grailsのデータ永続性はHibernateの上に構築されています。 JDOは、Hibernateでは役に立たないことでどのように役立つと思いますか?デフォルトよりもJDOを選択する理由がわかりません。
JPAに関する限り、特に説得力がない限り、JPAを使用することをお勧めします。JPAはGrailsに便利なHibernate実装であり、Hibernate固有の機能は使用しません。
[問題の大幅な変更後は関連性がなくなります]
エンティティ自体にCRUD操作を含めることはまったく問題ありません。ただし、複数のエンティティを操作している場合があります。その場合、レイヤーが便利でクリーンになります、IMHO。繰り返しますが、それは要件の問題です。
[問題が大幅に変更された後は関係ありません]
次の記事をご覧ください。
http://www.infoq.com/news/2007/09/jpa-dao
それは本当にあなたのアプリケーションの性質とそれのサイズに依存するように聞こえます。 JPAはより単純なので、それを堅持し、アプリケーション内のDAOレイヤーを回避するようにします。ただし、それがかなり小さく単純なアプリケーションである場合に限ります。