這是我的代碼片段。這段代碼對本地開發數據存儲非常有效。但在真正的應用程序引擎上不起作用。這裏使用的查詢過濾器只返回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