Android Greendao - группировка и сортировка по - PullRequest
0 голосов
/ 22 октября 2019

Я использую GreenDAO в моем проекте.

У меня есть таблица чатов, которая содержит все сообщения. Я хочу сгруппировать по chat_id и упорядочить сообщения в порядке убывания по отметке времени сообщения.

, поэтому я пытаюсь получить список, содержащий самое последнее сообщение каждого чатау пользователя есть.

это код, который я использую:

Chats.queryBuilder()
     .orderDesc(ChatsDAO.Properties.TimeStamp)
     .where(ChatsDAO.Properties.UserId.eq(user_id))
     .where(new WhereCondition.StringCondition("1 GROUP BY chat_id"))
     .list();

но все же приведенный выше код дает мне список, который содержит первое сообщение каждого чата, а не последнеесообщение.

есть ли способ сделать необработанный запрос с использованием greenDAO и выбрать то, что я хочу?

1 Ответ

0 голосов
/ 22 октября 2019

Вы можете сделать необработанный запрос, используя GreenDAO, следующим образом. Также проверьте ссылку

 Query<User> query = userDao.queryBuilder().where(
 new StringCondition("_ID IN " +
 "(SELECT USER_ID FROM USER_MESSAGE WHERE READ_FLAG = 0)")
 ).build();
...