2013-11-24 41 views

回答

1

不幸的是,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()); 
} 
+0

所以從我可以,我不得不做2調用數據存儲一個獲取相匹配的查詢,第二個要刪除提供有鍵實體的實體的鑰匙? – Adelin

+0

是的。究竟。如何在一次通話中做到這一點是沒有辦法的。 – musketyr

相關問題