Android Greendao-分组和排序依据

问题描述 投票:0回答:1

我在我的项目中使用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进行原始查询并选择我想要的吗?

android sqlite orm greendao
1个回答
0
投票

您可以按照以下方法使用GreenDAO进行原始查询。另外,检查link

 Query<User> query = userDao.queryBuilder().where(
 new StringCondition("_ID IN " +
 "(SELECT USER_ID FROM USER_MESSAGE WHERE READ_FLAG = 0)")
 ).build();
© www.soinside.com 2019 - 2024. All rights reserved.