2010-11-22 1 views
4

JavaのGAEで構築されたアプリケーションで作業しています。 DatastoreServicesとEntityクラスを使用するか、オブジェクトのクラスを作成するか、PersistenceManagerを使用するかどうかを調べるのに問題があります。Java App Engine DatastoreServiceまたはPersistenceManager?

誰かがこの2つのサービスの違いを説明できますか?

答えて

4

これらのいずれかを使用する固定の理由がない場合は、Objectifyをご覧ください。これは、ストレージのためにはるかに優れたライブラリです。

SDKのDatastoreサービスは、Bigtable RPCと直接話せるようにする低レベルのサービスです。 Bigtableのデータ形式とAPIに変換し、BigtableのRPCメソッドを呼び出すコードを記述します。

JDO仕様とその永続性マネージャは、データクラスの作成とその格納と取り出しを扱うJava標準です。これは、直接データストアサービスよりも高いレベルの抽象化です。 GoogleはGAEで動作するようにJDO仕様を実装していますので、必要に応じて使用できます。

Objectifyは、エンタープライズJava標準ではないJDOに代わるものですが、はるかに簡単で楽しい使い方です。これはPython APIに非常によく似ており、非常に素晴らしく簡潔になっています。

+0

もちろん、DatastoreServiceまたはObjectifyを使用してJDOを使用する利点は、GAEへの配置に限定されないことです。すべての主要なRDBMSを含む多くのストレージエンジン用のJDO実装があります。 – WhiteFang34

3

PersistenceManager(JDO)がより多くのリソース(=より多くの金額)を消費し、遅くなるため、DatastoreServiceに投票しました。

http://gaejava.appspot.com/ - ここで比較できます。このテストを数回試してみてください。

+2

素晴らしいアイデアと仕事!純粋な低レベルJava APIと比較してオーバーヘッドがより明確になるようにObjectifyを追加できますか? –

関連する問題