5

Veri deposundan veri almak için GQL'i kullanmaya çalışıyorum.GQL literal hatayı reddetti, google datastore

Bir SELECT * FROM Kind isteği yaptığımda, çalışır ve verileri geri alırım.

Ancak çalıştığınızda:

SELECT * FROM kind where num < 1234 

Ben izin verilmeyen değişmez hatası alıyorum.

SELECT * FROM kind where num < '1234' 

ama aynı hatayı alıyorum:

Hatta alıntılarla bunu denedi.

Daha önce bunlara giren var mı?

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

cevap

3

doğrudan sorguda içine eklemek yerine sorgu parametresini bağlamak gerekir: Burada

kodudur.

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

İşe yarıyor! Çok teşekkür ederim!! –

+0

Bunu duyduğuma sevindim! Cloud Datastore'u kullandığınız için teşekkürler (☞ ゚ ヮ ゚) ☞ –

+0

Sadece merak ediyorum, bunu nasıl yapacağınızı öğrendiniz? Bunu bellekten yapabilmeyi veya en azından stackoverflow ve google haha ​​dışındaki yanıtları nerede arayacağımı bilmek istiyorum. –

İlgili konular