在objectify数据存储区中删除过滤器记录

时间:2016-12-06 13:38:02

标签: google-cloud-datastore google-cloud-endpoints

我想删除记录,其中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); } 请让我知道应该定义什么作为回报?

1 个答案:

答案 0 :(得分:0)

查看底部&#34;执行查询&#34;部分底部的查询https://github.com/objectify/objectify/wiki/Queries的Objectify文档。 &#34;您可以只查询键,这将比获取整个对象更有效地返回Key对象&#34;

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

然而,它的效率低于第一种方式。