实际上:
return all().filter("name", name).count() == 0;
可能是更好的方法?
关于性能,我会选择类似的东西:
return all().filter("name", name).get() == null;
我不确定 GAE,但在 SQL 中,limit 1 比 count 快几倍,显然你不需要知道有多少模型有这个值。
当您在字段上过滤时,您的方式还不错。
如果您知道实体的密钥,则可以使用:
return Model.getByKey(YourClass.class, id) == null
如果要过滤给定字段,也可以仅使用 fetch 键:
return all().filter("name", name).fetchKeys().size() == 0;
但我想知道哪个是性能最好的。这取决于 GAE 数据存储在“计数”或“仅获取密钥”操作方面的性能。