实际上:
return all((.filter("name",name(.count((==0;
也许是更好的方法?
关于性能,我会选择以下选项:
return all().filter("name", name).get() == null;
我不确定GAE,但在SQL中,极限1比count快几倍,显然你不需要知道有多少模型具有这个值。
在筛选字段时,您的方法还不错。
如果你知道实体的密钥,你可以使用:
return Model.getByKey(YourClass.class, id) == null
如果你想在给定的字段上进行过滤,你也可以只使用提取密钥:
return all().filter("name", name).fetchKeys().size() == 0;
但我想知道哪一个是最好的表现。这取决于GAE数据存储在"count"或"fetch keys only"操作方面的性能。