Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2019, 20: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, как в моем варианте?
Дикутенз вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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