JDOのリレーション(Unowed)を試してみたが。
BigTableのキーとか関連とか未だによく分からないけど、ちょっとずつこの辺りをやらねばと思い、TODOリストサービスに手を加えてみた。TaskクラスにCategoryクラスをフィールドとして持たせてやってたんだけど、なかなかうまくいかない。
そして、色々調べてたら、PicklesさんのGAE/Jのドキュメントのすばらしい訳文発見。
http://blog.memo.vg/2009/05/relationships.html
そして、ここにかかれている、Unowedな関連ってのを使って、実装するとなんとなくうまく行った。
もしかして、Ownedな関連でもうまく行くのかも知れないけど、とりあえず・・。
public class Task implements Serializable { // ・・略 @Persistent private String categoryKey; @NotPersistent private Category category; // ・・略
TaskクラスにはCategoryのキーをStringで保持するようにする。Taskを保存するときカテゴリと関連させる場合、先に保存(または検索)したCategoryのキーを設定する。
検索してTask一覧を取得したら、手でがりがりcategoryKeyをもとに検索してきてcategoryフィールドにCategoryオブジェクトを設定していくって感じ。
こんなんで、いいのか?!
もうちょうい調べないとだめだなー。今日はここまで・・・zz
最新のコードは↓ここから落とせます。
http://code.google.com/p/hironemu-examples/source/checkout