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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 11.06.2019, 21:44   #1
Дикутенз
 
Регистрация: 11.08.2015
Сообщений: 3
По умолчанию Как составить запрос 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, как в моем варианте?
Дикутенз вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить блок-схему к заданию. 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