Задать вопрос
@dikutenz

Как сделать общий запрос 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, как по фильтру. (например только summer, только winter, только archive и т д). Я пытаюсь в Dao сделать это так
@Query("SELECT * FROM " + GarmentTable.NAME + " WHERE :clause")
List getByClauseList(String clause);
А в коде прописать
garments = mGarmentDao.getByClauseList(GarmentTable.Cols.SUMMER + " = 1 ")
В итоге у меня отображается пустой список.

Если я делаю запросы по отдельности, то всё выводится корректно, например
@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);

Я конечно могу расписать каждый запрос по каждому параметру, но слишком много кода получиться. Можно ли как-то создать общий запрос?
  • Вопрос задан
  • 26 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы