2010-10-06 13 views
2

J'utilise le magasin de données appengine et toutes mes entités ont des ID longs comme clé primaire. J'utilise ces identifiants pour communiquer avec le client, car les clés à part entière prennent beaucoup plus de bande passante à transmettre.Création de groupes d'entités tout en maintenant l'accès aux identifiants longs

Maintenant, je veux former des groupes d'entités afin que je puisse faire des opérations complexes dans les transactions, et il semble de http://code.google.com/appengine/docs/java/datastore/transactions.html#Entity_Groups que j'ai besoin d'utiliser des clés codées ou clés - les simples Longs ne sont pas une option. Cela ne me dérange pas de refactoring un peu pour utiliser les touches, mais je veux toujours éviter d'envoyer les choses sur le fil de béhémoth. Comment puis-je obtenir un identifiant long unique (par type) pour une entité dont la clé primaire est une clé?

Répondre

3

Vous n'avez pas besoin d'utiliser de noms (chaînes). Tous les KeyBuilder méthodes qui prennent des noms ont aussi des homologues qui prennent des ids (longs).

Pour la transmission, vous avez simplement besoin du nom ou de la partie id d'un Key. Une fois que vous connaissez l'identifiant ou le nom, vous pouvez reconstruire le côté du serveur de clés. S'il s'agit d'une entité enfant, vous devez connaître à la fois le nom du parent et celui de l'enfant.