Ошибка в 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();

Имейте в виду, что это поведение не документировано. Тем не менее, он не должен меняться - по крайней мере, без какого-либо предупреждения. Т.к. тогда придется заниматься миграцией Базы Данных.

→ Ссылка