2012-12-02 16 views
7

Possiedo un oggetto suggerito EntityKind. Quando lo popolino con una chiave "GrpId" e la proprietà "suggeritoint".archivio dati Google - query sui valori chiave

Ora, ho bisogno il valore "suggestedint" per una richiesta "grpid"

Così, scrivo la query come:

String findSuggestedInterest(String grpId) 
{ 
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
    Filter filter = new FilterPredicate(Entity.KEY_RESERVED_PROPERTY,FilterOperator.EQUAL,grpId); 
    Query q0 = new Query("SuggestedInterest").setFilter(filter); 
    PreparedQuery pq0 = datastore.prepare(q0); 
    Entity result = pq0.asSingleEntity(); 
    return result.getProperty("suggestedint").toString();  
} 

Quando eseguo questo codice ottengo

java.lang.IllegalArgumentException: __key__ filter value must be a Key 

I documenti dello sviluppatore hanno detto di usare Entity.KEY_RESERVED_PROPERTY per eseguire una query sui tasti, ma suppongo di aver frainteso. Qual è il modo corretto di interrogare sulla chiave?

risposta

12

lo dia mai un Key invece di String:

Key grpKey = KeyFactory.createKey("SuggestedInterest", grpId) 

quindi utilizzarlo:

Filter filter = 
    new FilterPredicate(Entity.KEY_RESERVED_PROPERTY,FilterOperator.EQUAL,grpKey); 
Problemi correlati