Ошибка в SQL запросе в Room
Не смог отыскать понятной для себя документации по Query запросам в Room. Вроде все относительно получилось, но остался последний запрос. Мне необходимо создать список, отбирая только те записи, где поле check ( тип boolean ) равно true.
@Query("SELECT * FROM Recept WHERE `check` == true")
LiveData<List<Recept>> getLike();
Как видно на скрине, у меня ошибка. Подскажите, как правильно построить запрос.
Ответы (1 шт):
Автор решения: Sergei Buvaka
→ Ссылка
SQLite не имеет такого типа данных как boolean. Room мапит эти значения в колонки с INTEGER где true = 1, а false = 0
Этот код должен решить вашу проблему:
@Query("SELECT * FROM Recept WHERE check = 1")
LiveData<List<Recept>> getLike();
Имейте в виду, что это поведение не документировано. Тем не менее, он не должен меняться - по крайней мере, без какого-либо предупреждения. Т.к. тогда придется заниматься миграцией Базы Данных.