2


0

ロングIDへ​​のアクセスを維持しながらエンティティグループを確立する

私はappengineデータストアを使用していますが、すべてのエンティティはPrimaryKeyとしてLong idを持っています。 本格的なキーは送信するためにより多くの帯域幅を必要とするため、これらのIDを使用してクライアントと通信します。

ここで、トランザクション内で複雑な操作を行えるようにエンティティグループを形成したいと考えています。http://code.google.com/appengine/docs/java/datastore/transactions.html#Entity_Groupsから使用する必要があるようですキーまたは文字列でエンコードされたキー-単純なLongはオプションではありません。

キーを使用するために少しリファクタリングすることは気にしませんが、それでも、巨大なものをネットワーク経由で送信することは避けたいです。 主キーがキーであるエンティティの一意の(種類ごとの)長い識別子を取得するにはどうすればよいですか?

1 Answer


3


名前(文字列)を使用する必要はありません。 名前を取るすべてのhttp://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/KeyFactory.Builder.html[KeyBuilder]メソッドには、id(ロング)。

送信するには、http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Key.html [Key]の名前またはID部分が必要です。 IDまたは名前がわかれば、キーサーバー側を再構築できます。 子エンティティの場合、親と子の名前またはIDの両方を知っている必要があります。