5

Próbuję użyć GQL, aby uzyskać niektóre dane z powrotem z magazynu danych.GQL niedozwolone błąd literalny, google datastore

Kiedy wykonuję żądanie SELECT * FROM Kind, działa i otrzymuję dane z powrotem.

Jednak gdy próbuję:

SELECT * FROM kind where num < 1234 

dostaję niedozwolone błąd dosłowne.

Próbowałem nawet zrobić z cytatami:

SELECT * FROM kind where num < '1234' 

ale pojawia się ten sam błąd.

Czy ktoś już kiedyś to robił?

Oto kod:

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")); 

Odpowiedz

3

Trzeba powiązać parametr zapytania zamiast bezpośredniego dodawania go do zapytania.

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

Działa! Dziękuję bardzo!! –

+0

Miło mi to słyszeć! Dzięki za korzystanie z Cloud Datastore (☞ ゚ ヮ ゚) ☞ –

+0

Jestem po prostu ciekawy, gdzie nauczyłeś się tego robić? Chcę móc to zrobić z pamięci lub przynajmniej wiedzieć, gdzie szukać odpowiedzi, innych niż stackoverflow i google haha. –

Powiązane problemy