[英]Random querying for Google App Engine Datastore entities using Java
[英]Google App Engine HR Datastore - Java - Delete Entities programatically
我正在Eclipse(Helios)IDE中運行Google App Engine。 我使用Java來實現。 測試是在本地主機上完成的:8888。
不幸的是,我無法解決以下問題。 我將實體存儲在Google App Engine高復制數據存儲區中。 關鍵是位置,所有事件都存儲為各種類型的位置(據我了解),現在沒有特殊的唯一主鍵。 我用:
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);
這很好。
當我嘗試在特定位置發生所有事件時,我使用下面的代碼:
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"));
}
它傳遞所有事件並在我的Web瀏覽器站點中打印數據。 ->作品
但是我無法刪除這樣的事件實體。 我嘗試過:dss.delete(key),我嘗試在for每個循環中刪除...
有人知道如何通過查詢以編程方式刪除一個或所有事件嗎? (在Dashbord中刪除對我沒有幫助!)
非常感謝您的幫助!
我現在做到了,但我不知道為什么。 以下代碼現在可以工作:
for (Entity event : events) {
currentAktionen.getWriter().println(event.getProperty("date") + "," +
event.getProperty("info"));
Key key = aktion.getKey();
dss.delete(key);
}
不要問我為什么,....我在for-each的開頭嘗試了最后兩行代碼,然后嘗試了15次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.