GAEではあるエンティティモデルにエンティティのコレクションを持たせると
親となるエンティティにはLong型のidが付き、
子のコレクションの一部になるエンティティにはKey型のkeyが付く。
(勿論それぞれのエンティティで定義は必要)
このとき、親のidにはユニークな値が入るけど
子のkeyには親のキーとアプリケーションまたはシステムで生成した数値IDを
組み合わせたものになるらしい。
エンティティのキーについて
子のkey = 親のkey + (appli or system)id
このKey型はgetIdメソッドを用意していて、
どうやらなんらかしらのIDが取得できる
このなんらかしらのIDが、
データストアに子が記録された時に、ひっそりとIDとなっている値と一致
している気がするので、恐らくこれは子エンティティのidなんだろうと思う。
疑問に思っているのは別にあって、
親→子→子→子→親…
と、いくつか作成してみると、
どうも
idが親と子を合わせて連番になっているように見える
何 故 だ 。
問題というわけじゃないけど、id生成の規則性は意外とシンプルなのかなと。