java - 如何在 AppEngine 数据存储上执行批量更新

标签 java google-app-engine google-cloud-datastore

以下代码无效。有谁知道我该如何让它发挥作用?

Query q = new Query("Product");
    Iterable<Entity> entities = datastore.prepare(q).asIterable();
    for (Entity entity : datastore.prepare(q).asIterable()) {
        entity.setProperty(“sale”, false);
    }
    datastore.put(entities);

sale 是我添加到实体种类的全新字段。所以它还不存在。

更新

我按如下方式修复了它,但代码仍然无法正常工作

Query q = new Query("Product");
    Iterable<Entity> entities = datastore.prepare(q).asIterable();
    for (Entity entity : entities) {
        entity.setProperty(“sale”, false);
    }
    datastore.put(entities);

最佳答案

您的代码中有错误。您永远不会更新实体。应该是:

Query q = new Query("Product");
List<Entity> entities = datastore.prepare(q).asList(FetchOptions.Builder.withDefaults());

for (Entity entity : entities) {
    entity.setProperty(“sale”, false);
}
datastore.put(entities);

关于java - 如何在 AppEngine 数据存储上执行批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28116488/

相关文章:

google-app-engine - 如何在GAE中有效实现session?

java - Google 数据存储查询时间长

python - 如何访问数据存储信息(交互式控制台)?

node.js - 从 Nodejs (seneca) 连接到 Google Cloud Datastore

java - 在java中暂停/恢复多个线程

java - 为什么我收到 "cannot find symbol"错误

Java - 从服务器获取日志文件

python - 使用 Group By 从 appengine 数据存储中获取记录

google-app-engine - Go app 在本地运行良好,运行 goapp serve 时产生 404

java - 使用 JDBC 在 while 循环中存储值