5

Sto cercando di utilizzare GQL per recuperare alcuni dati dal datastore.Errore letterale non consentito GQL, archivio dati google

Quando faccio una richiesta SELECT * FROM Kind, funziona e ottengo i dati indietro.

Tuttavia quando provo:

SELECT * FROM kind where num < 1234 

ottengo un errore di letterale non consentito.

Ho anche provato a farlo con citazioni:

SELECT * FROM kind where num < '1234' 

ma ottengo lo stesso errore.

Qualcuno si è imbattuto in questo prima?

Ecco il codice:

Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,    
      "SELECT * FROM " + kind + " WHERE num < '100'" 
     ).build(); 
    QueryResults<Entity> results = datastore.run(query); 
    while (results.hasNext()) { 
    Entity result = results.next(); 
    myList.add(result.getString("num")); 

risposta

3

È necessario associare il parametro di query piuttosto che aggiungere direttamente nella query.

Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,    
          "SELECT * FROM " + kind + " WHERE num < @num") 
         .setBinding("num", 100) 
         .build(); 
QueryResults<Entity> results = datastore.run(query); 
while (results.hasNext()) { 
    Entity result = results.next(); 
    myList.add(result.getString("num")); 
... 
+0

Funziona !! Grazie mille!! –

+0

Sono felice di sentirlo! Grazie per aver utilizzato Cloud Datastore (☞ ゚ ヮ ゚) ☞ –

+0

Sono solo curioso, dove hai imparato come farlo? Voglio essere in grado di farlo dalla memoria o almeno sapere dove cercare le risposte, oltre allo stackoverflow e google haha. –

Problemi correlati