Запрос помещения возвращает LiveData родительского класса - PullRequest
0 голосов
/ 11 марта 2019

У меня есть три предложения:

  • Задача (родительский класс)
  • ProgressTask (подкласс Task)
  • TodolistTask (подкласс Task)

ProgressTask и TodolistTask отличаются несколькими параметрами.

И ProgressTask, и TodolistTask - это сущности в моей комнате. Я хочу иметь TaskDao, в котором я хотел бы вызвать этот запрос:

@Query("SELECT * FROM  progressTask_table UNION SELECT * FROM todolistTask_table")
LiveData<List<Task>> getAllTasks();

это возможно? Теперь я получаю разумную ошибку, утверждая, что SELECT слева и справа имеют разное количество столбцов.

1 Ответ

0 голосов
/ 11 марта 2019

При использовании объединения вы должны вызывать отдельные столбцы в запросе.

Скорее всего, у ваших объектов разные столбцы.Пример ProgressTask имеет дату, которой нет у TodolistTask.

Если вы вызовете каждый столбец базового класса в обеих выбранных частях вашего запроса, он будет работать.

...