С Сиеной, каков наилучший способ узнать, не существует ли сущность в GAE?

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

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

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

2 ответа

Решение

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам