Google App Engine HR DataStore -Java-编程删除实体



我正在我的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);
}    

不要问我为什么,...。

最新更新