Моя проблема : Я не уверен, почему этот Android Запрос комнаты не возвращает результаты. Я думал, что понял правильное кодирование, и это кажется довольно простым. Если я передаю этот же запрос непосредственно в ту же базу данных с помощью SQLiteStudio, я получаю результаты.
Код вызова (я жестко закодировал строку 'true' для его проверки):
List<Integer> tableIDs = researchDatabase.getCommentsDao().customSearchCommentsTable("truth");
Код DAO (содержится в CommentsDao):
@Query("SELECT CommentID FROM Comments WHERE Comment LIKE :value")
List<Integer> customSearchCommentsTable(String value);
Что я сделал : я новичок в Android Room, но я использовал все примеры и уроки Android Разработчики (developer. android .com) и рассмотрели и применили много сообщений здесь в stackoverflow, тесно связанных, но я не могу получить никаких результатов для возврата. Когда я шагаю по коду, фактический код комнаты Android, кажется, не связывает переменную строку с оператором, хотя я вижу, что строка аргумента идентифицируется и передается правильно, что не является кодом, который я написал, или по крайней мере, я никогда не вижу результирующую строку привязки с моими переменными данными, я вижу только это:
ВЫБРАТЬ CommentID из комментариев, ГДЕ комментарий нравится?
Что мой цель - : на самом деле это первый шаг к созданию запроса для обработки запроса типа LIKE, аналогичного этому, который, я думаю, потребует настройки @RawQuery. Прямо сейчас я не могу заставить эту простую вещь работать.
Что происходит в оболочке @Query: я понимаю, что могу быть наивным и ошибочным, но ниже я вижу, что аргумент и утверждение оба пропущены, но он не выглядит так, как будто «_statement.bindString» фактически связывает «: значение» («истина») с оператором и возвращает 0 результатов.