setFilter () со строковым символом подстановки? - PullRequest
2 голосов
/ 22 июля 2010

Я вижу пример частичного поиска строки в группе Google GAE ( эта тема ):

String term1 = "cow";
String term2 = "horse";

Query q;
q.setFilter("name.matches('" + term1 + "%')");

так что это работает как:

"Найти все объекты класса, где свойство name начинается с term1"

так, чтобы это соответствовало вещам вроде:

cowfoo
cowgrok
cowetc

право? Затем я мог бы заменить term1 на term2 и найти все экземпляры, которые начинаются с 'horse'. Есть ли документ, который объясняет это больше? Я просто хочу проверить, как это действительно работает, прежде чем принять решение о том, как сохранить некоторые строки для моей модели данных,

Спасибо

1 Ответ

0 голосов
/ 22 июля 2010

Я не могу найти документы, в которых представлен синтаксис соответствия префиксов, который вы представили, но ваша логика верна.И похоже, что синтаксис поддерживается на основе цитированного вами сообщения группы Google.

Для среды выполнения Python я бы выполнил сопоставление префикса с помощью фильтра неравенства.Вы также можете сделать это во время выполнения Java следующим образом (и, вероятно, именно так реализован синтаксис %):

// prefix is some string object
q.setFilter("my_string_field >= :1 && my_string_field < :2");
q.execute(prefix, (prefix + "\ufffd"));
...