Всем привет! Ищу помощь у тех, кто сталкивался с подобной задачей или у тех, кто знает, как ее решить.
Суть задачи: я пишу приложение для себя наподобие записной книжки, в которой хочу хранить своих клиентов (номера телефонов, адреса и прочее). Всю информацию храню в базе данных SQLite при помощи Room Database. Так вот предположим, что у меня уже есть данные в этой таблице с клиентами и я хотел бы сделать к ним фильтр -- это будет диалоговое окно с двумя Spinner:
Теперь самое главное! Как в Dao можно прописать такой метод, который бы фильтровал по таким параметрам? Мне в голову приходила мысль создавать много методов для каждого варианта сортировки и выборки, но я понимаю что это тот еще костыль. Заранее спасибо за помощь!
Сам задавался таким вопросом и другого решения я пока-что не нашёл. Была мысля пробовать передавать эти параметры через параметры метода, например:
@Query("SELEC * FROM contact :where :orderBy")
fun getListContacts(where: String = "", orderBy: String = "") : List<Contact>
where = "WHERE date > время от нуля за сегодня"
orderBy = "ORDER BY name ASC"
И так далее, но метод ещё не испытан, времени не было потестить, возможно даже не рабочий или где-то ошибся, писал на коленке. Как проверите отпишитесь.
Ну и второй составалять на каждую выборку по первому пункту свой запрос, а сортировать уже по месту.
P.S. вот эта конструкция: where: String = "" - это из Kotlin-а, позволяющая не задавать параметры при вызове функции.
Продвижение своими сайтами как стратегия роста и независимости