2010-08-18 4 views
3

J'essaie de faire quelque chose de relativement simple et quelque chose que je pense que j'étais capable de faire. J'essaie d'utiliser l'interface d'administration pour interroger ma banque de données en utilisant un identifiant long. L'entité en question est définie comme:Comment faire pour interroger java appengine datastore VIEWER pour l'entité en utilisant un long ID

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true") 
public class Notification 
{ 
    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Long notificationId = null; 
} 

Dans la visionneuse datastore dans l'interface d'administration AppEngine, je Réalise la requête gql suivante:

SELECT * FROM Notification WHERE _key_ = KEY('Notification', 12345) 
SELECT * FROM Notification WHERE id = KEY('Notification', 12345) 
SELECT * FROM Notification WHERE notificationId = KEY('Notification', 12345) 
SELECT * FROM Notification WHERE notificationId = 12345 

Aucune de ces requêtes renvoient aucun résultat et ils ne produisent des erreurs. Je suis sûr que l'entité existe. Un d'entre eux a l'habitude de travailler, je ne me souviens plus lequel. Cela pourrait-il être dû à la récente mise à jour appengine à 1.3.6?

Répondre

4

Vous en avez besoin:

SELECT * FROM Notification WHERE __key__ = KEY('Notification', 12345) 

Remarque deux underscores autour de la clé, pas un seul.

+0

génial. très appréciée! – aloo

Questions connexes