С Сиеной, каков наилучший способ узнать, не существует ли сущность в GAE? - PullRequest
0 голосов
/ 15 августа 2011

На самом деле:

вернуть все (). Filter ("имя", имя) .count () == 0;

Может быть, лучше?

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Что касается производительности, я бы сказал что-то вроде:

return all().filter("name", name).get() == null;

Я не уверен насчет GAE, но в SQL предел 1 в несколько раз быстрее, чем подсчет, и, очевидно, вам не нужно знатьсколько моделей имеют это значение.

0 голосов
/ 16 августа 2011

Ваш путь неплох, если вы фильтруете по полю.

Если бы вы знали ключ сущности, вы могли бы использовать:

return Model.getByKey(YourClass.class, id) == null

Если вы хотите выполнить фильтрацию по заданному полю, вы также можете использовать только ключи выборки:

return all().filter("name", name).fetchKeys().size() == 0;

Но мне интересно, что является лучшим с точки зрения производительности. Это зависит от производительности хранилища данных GAE в отношении операции «считать» или «только получить ключи».

...