Эта проблема
Можно ли построить запрос во время выполнения?
Случай использования
@Query("SELECT * FROM playlist " +
"WHERE playlist_title LIKE '% :playlistTitle %' " +
"GROUP BY playlist_title " +
"ORDER BY playlist_title " +
"LIMIT :limit")
List<IPlaylist> searchPlaylists(String playlistTitle, int limit);
limit
часть является необязательной. То есть он должен иметь возможность выполнять один и тот же запрос с ограничением или без него.
Более сложный вариант использования
В предыдущем случае можно сделать два статических запроса с лимитом и без него, и каждый раз можно использовать соответствующий запрос. Но иногда нам приходится сталкиваться с более сложными ситуациями, такими как создание фильтра.
В этом случае, в отличие от предыдущего примера, будет несколько дополнительных элементов. Для таблицы книг нам может потребоваться выполнить фильтрацию в соответствии с категорией, к которой принадлежит книга, именем автора, ценовым диапазоном, датой публикации и т.д. Почти невозможно выполнить статические запросы со всеми комбинациями этих частей.