2012-10-25 47 views
1

我在我的Eclipse(太陽神)IDE運行谷歌應用程序引擎。我使用Java實現。測試在localhost上進行:8888。谷歌App Engine的數據存儲HR - 爪哇 - 刪除實體編程

不幸的是我並不能解決以下問題。我將實體存儲在Google應用引擎高級複製數據存儲中。關鍵是位置,所有的事件存儲爲各種位置(據我所知),現在沒有特殊的唯一主鍵。我用:

DatastoreService dss; 
Key key; 
Entity event; 

dss = DatastoreServiceFactory.getDatastoreService(); 
key = KeyFactory.createKey("location", location); //location is String 

event = new Entity("event", key); 
event.setProperty("date", date); 
event.setProperty("info", infostrg); 
dss.put(event); 

這工作正常。

當我試圖讓發生在我使用follewing代碼的特定位置的所有事件:

dss = DatastoreServiceFactory.getDatastoreService(); 

key = KeyFactory.createKey("location", location); 
aktQuery = new Query ("event", key); 

aktQuery.addSort("date", Query.SortDirection.DESCENDING);  
//List<Entity> 
events = dss.prepare(aktQuery).asList(FetchOptions.Builder.withLimit(20)); 

for (Entity event : events) { 
    //HTTPServeletResponse only prints out for test 
    currentAktionen.getWriter().println(event.getProperty("date") + "," + 
       event.getProperty("info")); 
} 

它提供的所有事件,並在我的網頁瀏覽器的網站打印數據。 - >工作

但我不能夠刪除這樣的事件實體。 我試過:dss.delete(鍵),我試圖在每個循環期間刪除,...

是否有人知道如何通過查詢以編程方式刪除一個或所有事件mayby? (在Dashbord刪除不幫助我!)

非常感謝您的任何幫助!

回答

0

我現在,但我不知道爲什麼。下面的代碼工作現在:

for (Entity event : events) { 

    currentAktionen.getWriter().println(event.getProperty("date") + "," + 
      event.getProperty("info")); 
    Key key = aktion.getKey(); 
    dss.delete(key); 

}  

不要問我爲什麼,......我之前的代碼的最後兩行開頭的爲-each和它沒有工作試過這種15倍。

相關問題