gpt4 book ai didi

java - Google App Engine HR 数据存储 - Java - 以编程方式删除实体

转载 作者:行者123 更新时间:2023-12-01 05:03:16 27 4
gpt4 key购买 nike

我正在 Eclipse (Helios) IDE 中运行 Google App Engine。我使用Java来实现。测试在 localhost: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"));
}

它提供所有事件并打印我的网络浏览器站点中的数据。 --> 作品

但我无法删除这样的事件实体。我尝试过:dss.delete(key),我尝试在 foreach 循环期间删除,...

有人知道如何通过查询以编程方式删除一个或所有事件吗?(在仪表板中删除对我没有帮助!)

非常感谢您的帮助!

最佳答案

我现在成功了,但我不知道为什么。以下代码现在可以运行:

for (Entity event : events) {

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

}

别问我为什么,...我之前尝试过 15 次,在 for-each 的开头添加最后两行代码,但没有成功。

关于java - Google App Engine HR 数据存储 - Java - 以编程方式删除实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069181/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com