Как получить данные из курсора с помощью Room - PullRequest
0 голосов
/ 27 декабря 2018

Я использую этот запрос для получения данных из базы данных, используя Room, но не могу выяснить, каким будет тип возврата этого запроса и как получить данные из этого запроса

@Query("SELECT COUNT(Unit), Age as COUNT from test where Age in (1, 2, 3) and Unit in ("U5", "U6", "U4") group by Age")

.вывод, полученный при работе в sqllite online, показан ниже на скриншоте.Так что это как ключ, пара значений.

enter image description here

1 Ответ

0 голосов
/ 27 декабря 2018

Шаг # 1: Измените запрос, назвав оба выходных элемента:

SELECT COUNT(Unit) as count, Age from test where Age in (1, 2, 3) and Unit in ("U5", "U6", "U4") group by Age

Шаг # 2: Создайте POJO, соответствующий выводу запроса:

class AgeCounts {
  public int count;
  public int age;
}

Шаг #3: Пусть метод DAO (на который пойдет ваш @Query) вернет List вашего класса POJO (например, List<AgeCounts>), возможно, заключенный в реактивный тип (например, LiveData<List<AgeCounts>>, Single<List<AgeCounts>>):

@Query("SELECT COUNT(Unit) as count, Age from test where Age in (1, 2, 3) and Unit in ("U5", "U6", "U4") group by Age")
List<AgeCounts> getAgeCounts();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...