2016-12-06 95 views
1

我想刪除company_id爲「****」且gamer_id爲「****」的記錄。 如何爲此編寫查詢。刪除物化數據存儲中的過濾器記錄

public List<CompanyGamer> unfollowcompany(CompanyGamerForm CompanyGamerForm) throws NotFoundException { String company_id = CompanyGamerForm.getCompany_id(); String gamer_id = CompanyGamerForm.getGamer_id(); Iterable<Key<CompanyGamer>> allKeys = ofy().load().type(CompanyGamer.class).filter("company_id=", company_id).filter("gamer_id=", gamer_id).keys(); ofy().delete().keys(allKeys); } 請讓我知道什麼是應該的回報來界定?

回答

0

看一看在部分底部的「執行查詢」的物化文檔查詢https://github.com/objectify/objectify/wiki/Queries。 「你可以查詢只是按鍵,這將更加有效地返回鍵對象不是獲取整個對象」

Iterable<Key<Gamercompany>> allKeys = ofy().load().type(Gamercompany.class).filter("company_id=", compnyid).filter("gamer_id=",gamer_id).keys(); 

然後你就可以刪除對應的鍵的所有實體:

ofy().delete().keys(allKeys); 

或者,如果你確實要執行返回的實體,而不是鍵查詢,你可以遍歷查詢和做:

ofy().delete().entity(thing);  // asynchronous 

ofy().delete().entity(thing).now(); // synchronous 

但是它會比第一種方式效率較低。

+0

我試過了。但它不起作用。我編輯了我的問題,我已經添加了完整的Api方法。請檢查。 –

+0

你用allKeys得到了什麼?你可以迭代它嗎? –

相關問題