Запрос помещения не работает со списком <String>с использованием преобразователя типов - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь выполнить sqlite-запрос в комнате, где у меня есть строка поиска, которая может быть пустой или нет. Если пусто, то я хочу вернуть все элементы указанного типа c, в противном случае я хочу вернуть любой контент, который соответствует строке поиска и имеет указанный тип c. Тип определяется как List в моей модели следующим образом:

@TypeConverters(DataConverter::class)
var type: List<String>? = null,

Я написал запрос, но он не учитывает тип и возвращает все, что содержит поисковый запрос. Что я делаю не так?

SELECT * FROM practice 
    WHERE type LIKE '%' || 'video' || '%'
    AND (title LIKE '%' || :query || '%' 
    OR content LIKE '%' || :query || '%' 
    OR categories LIKE '%' || :query || '%' 
    OR tags LIKE '%' || :query || '%')
    ORDER BY id ASC LIMIT (:page * :pageSize)

1 Ответ

0 голосов
/ 19 апреля 2020

Хорошо, я обнаружил проблему, я пытался сопоставить строку со списком, потому что с преобразователем типов она сохраняется в базе данных в виде строки. Но на самом деле он преобразуется обратно в список для запроса, поэтому я изменил «video» на listOf («video») для решения проблемы.

...