GAE を使用して RESTfull Web サービスを開発しています。私のテクノロジー スタックは、Jersey、Spring、Objectify に重点を置いています。
あなたがObjectifyを知らないなら...
「Objectify は、Google App Engine データストア専用に設計された Java データ アクセス API です。それは「中間」を占めています。JDO や JPA よりも使いやすく透過的ですが、低レベル API よりもはるかに便利です。Objectify は、初心者がすぐに生産性を発揮できるように設計されているだけでなく、GAE データストアの能力を最大限に発揮できるように設計されています。」</p>
https://code.google.com/p/objectify-appengine/
今のところ、Objectify Keys を使用してモデルに関係を保存しています。このような ...
public class MyModel {
@Id private Long id;
private Key<MyOtherModel>> myOtherModel;
...
Objectify キーは、Long ID と比較して追加の機能を提供しますが、静的メソッド Key.create(...) を使用して、Long ID と MyOtherModel.class から作成できます。
Key.create(MyOtherModel.class, id)
そのため、モデル レベルで Objectify キーとしてリレーションシップを正確に保存する必要はありません。より一貫性があると思いました。
問題は、モデル オブジェクトを JSON にシリアル化し、それらを JSON から Java オブジェクトに逆シリアル化するときに、Objectify キーを Long ID に変換する XML アダプターを作成するために、多くの追加コードを記述する必要があることです。
必要に応じて、代わりに長い ID を使用し、DAO で Objectify キーを作成することを考えていました。また、これにより、DAO ではないものから Objectify 固有のコードが削除されます。
より経験豊富なプログラマーからの視点が欲しいです。このサイズのソフトウェアを作成したことはありません。数千行のコードです。
どうもありがとうございました。