Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.06.2019, 21:44   #1
Дикутенз
Новичок
 
Регистрация: 11.08.2015
Сообщений: 3
Репутация: 10
По умолчанию Как составить запрос Query для Room по такому заданию?

У меня есть класс Garment c такими полями.

Код:
@Entity(tableName = GarmentTable.NAME)
    public class Garment {
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = GarmentTable.Cols.ID)
    private long mId;
    @ColumnInfo(name = GarmentTable.Cols.TITLE)
    private String mTitle;
    @ColumnInfo(name = GarmentTable.Cols.ARCHIVE)
    private boolean mArchive;
    @ColumnInfo(name = GarmentTable.Cols.SUMMER)
    private boolean mSummer;
    @ColumnInfo(name = GarmentTable.Cols.AUTUMN)
    private boolean mAutumn;
    @ColumnInfo(name = GarmentTable.Cols.WINTER)
    private boolean mWinter;
    @ColumnInfo(name = GarmentTable.Cols.SPRING)
    private boolean mSpring;
Мне нужно настроить фильтр для Garment так, чтобы отображался список по выбранному фильтру.
Я пытаюсь в Dao сделать это так
Код:
@Query("SELECT * FROM " + GarmentTable.NAME + " WHERE :clause")
    List getByClause(String clause);
А в коде, например, прописать
Код:
garments = mGarmentDao.getByClause(GarmentTable.Cols.SUMMER + " = 1 ");
или
Код:
garments = mGarmentDao.getByClause(GarmentTable.Cols.ARCHIVE + " = 0 ");
В итоге у меня отображается пустой список.

Если же я делаю запрос в Dao по определенным полям, то всё выводится корректно. Например:
Код:
@Query("SELECT * FROM " + GarmentTable.NAME + " WHERE " + GarmentTable.Cols.SUMMER + " = :isSummer")
    List getSummer(int isSummer);
    @Query("SELECT * FROM " + GarmentTable.NAME + " WHERE " + GarmentTable.Cols.AUTUMN + " = :isAutumn")
    List getAutumn(int isAutumn);
Почему в первом случае я получаю пустой список? Можно ли как-то создать общий запрос, вставив его в Query после слова WHERE, как в моем варианте?
Дикутенз вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить блок-схему к заданию. demetrisfcbm Помощь студентам 1 17.09.2018 21:21
Delphi, Запрос SQL в QUERY, БД Tattiana Помощь студентам 0 04.03.2017 14:23
Query запрос polarity БД в Delphi 2 21.03.2011 16:43
составить программу по такому алгоритму TRINITI23 Помощь студентам 6 08.03.2011 21:09
sql запрос через Query Lokos БД в Delphi 21 03.03.2010 15:38


17:02.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru