20

Google App Engine でプロジェクトを開発したいと考えています。Google Big Table をデータベースとして使用したいと考えています。データベースには、JPA と JDO の 2 つのオプションがあります。皆さん、それについて私に提案してくれませんか? どちらも私にとって新しいものであり、学ぶ必要があります。だから私はあなたの返事の後に1つに焦点を当てます.

4

5 に答える 5

12

Data Nucleus を使用しているため、JDO と JPA に関する FAQ を参照してください。 http://www.datanucleus.org/products/accessplatform_3_0/jdo_jpa_faq.html

DataNucleus AccessPlatform は、Java 永続性の JDO 仕様と JPA 仕様の両方をサポートします。そのため、どちらのテクノロジーにも「既得権益」はなく、ユーザーがどちらを好むかを選択できると考えています。JDO と JPA について Web 上で多くの FUD があり、主に RDBMS ベンダーによって行われています。この FAQ は、これらの点の多くを修正します

于 2010-02-12T05:49:29.740 に答える
4

主な違いは、JDOがリッチドメインモデル(ロジックとデータ)をサポートしていることです。実際、すべての永続クラスは現在のPersistenceManagerへの参照を持ち、クエリを発行できます。デフォルトでは、フィールドを永続化しない可能性があります。

JPAはそのようなソフトウェア設計をサポートしていません。実際、各エンティティにはPersistenceManagerへの参照がありません。そのためには、ThreadLocal変数に頼る必要がありますが、これは非常に洗練された堅牢なソリューションではありません。

于 2012-11-03T19:55:35.103 に答える
2

JPA は ORM を介して Java オブジェクトをリレーショナル データに永続化しますが、JDO は Java オブジェクトの永続化のより一般的な仕様です。したがって、JDO を使用すると、オブジェクトのストレージ実装オプションの自由度が高まります。

于 2017-04-28T05:23:27.517 に答える
1

JPAは、永続性の主要なJava標準です。したがって、RDBMSを使用していて、ORMが必要な場合は、JPAを使用すると言います。
Hibernateは一般的にJPA実装として使用されます。追加の機能が必要な場合は、Hibernate固有のアノテーションを使用できます。

この質問は、 GoogleAppEngineでのJDOとJPAforJavaですでに説明されているようです。

于 2010-02-12T05:29:20.580 に答える