这是我的代码片段。这段代码对本地开发数据存储非常有效。但在真正的应用程序引擎上不起作用。这里使用的查询过滤器只返回181行。如何使用已过滤查询从应用引擎中删除数据
import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.FetchOptions;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.Query.FilterOperator;
Query query = new Query("Share");
query.addFilter("timeOfData", FilterOperator.GREATER_THAN, sdf.parse(date));
query.setKeysOnly();
ArrayList<Key> allKeys = new ArrayList<Key>();
if(numberOfRowsToBedeletedAtOnceString != null)
numberOfRowsToBedeletedAtOnce = Integer.parseInt(numberOfRowsToBedeletedAtOnceString);
for (final Entity e : dcc.prepare(query).asIterable(FetchOptions.Builder.withLimit(numberOfRowsToBedeletedAtOnce)))
{
allKeys.add(e.getKey());
}
allKeys.trimToSize();
dcc.delete(allKeys);
out.print("Deleted By Date count : " + allKeys.size());
out.flush();
out.close();
它看起来像OP正在使用低级数据存储区API,您的答案是使用JDO API。我认为OP正在寻找使用低级API的答案。 – 2010-06-23 16:58:16
如果没有过滤器,低级别和JDO API都可以正常工作以便在chinks中删除。但是当我添加这个过滤器时,它不再工作。 – iftee 2010-06-23 18:55:34