如何从数据存储中删除与查询匹配的实体?有没有办法删除一些与简单查询匹配的对象?就像“删除现在之前日期的所有对象”或者可能删除具有值 mail@mail.com 的属性 email 的所有实体?
如果可能的话,请用java提供您的答案?
最佳答案
不幸的是,Java API 不提供删除所有功能。您需要迭代查询结果,然后删除所有实体。
AsyncDatastoreService ds = DatastoreServiceFactory.getAsyncDatastoreService();
// create query for your kind
Query query = new Query("Kind");
// we don't need anything else than the key
query.setKeysOnly();
// set the filter for date before now
query.setFilter(
new FilterPredicate(
"date",
FilterOperator.LESS_THAN_OR_EQUAL,
new Date()));
PreparedQuery pq = ds.prepare(query);
// asIterable is more efficient than asList
for (Entity en : pq.asIterable()) {
// delete each entity
ds.delete(en.getKey());
}
关于java - 如何从 AppEngine 数据存储中删除与查询匹配的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181778/