我正在我的eclipse(Helios)IDE中运行Google App Engine。我使用Java进行实施。测试是在本地主机上本地进行的:8888。
不幸的是,我无法解决以下问题。我将实体存储在Google App Engine High Replication DataStore中。关键是位置,所有事件都存储为类型的位置(我了解),现在没有特殊的独特主键。我使用:
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"));
}
它提供了所有事件,并在我的WebBrowser站点中打印数据。 ->作品
,但我无法删除此类事件实体。我尝试了:dss.delete(键),我试图在每个循环期间删除...
有人知道如何通过查询在编程上删除一个或所有事件吗?(在dashbord中删除没有帮助我!)
非常感谢您的帮助!
我现在做到了,但我不知道为什么。以下代码现在有效:
for (Entity event : events) {
currentAktionen.getWriter().println(event.getProperty("date") + "," +
event.getProperty("info"));
Key key = aktion.getKey();
dss.delete(key);
}
不要问我为什么,...。