Actually:
return all().filter("name", name).count() == 0;
May be a better way ?
Actually:
return all().filter("name", name).count() == 0;
May be a better way ?
Your way is not bad as you filter on a field.
If you had known the key of the entity, you could have used:
return Model.getByKey(YourClass.class, id) == null
If you want to filter on a given field, you can also use the fetch keys only :
return all().filter("name", name).fetchKeys().size() == 0;
But I wonder which is the best in term of performance. It depends on performance of GAE datastore regarding "count" or "fetch keys only" operation.
Regarding performance I would go for something like:
I'm not sure about GAE but in SQL a limit 1 is several times faster than count, and obviously you don't need to know how many models have this value.