Android 如何使用QueryBuilder获得GreenDAO中列的最大值?

Android 如何使用QueryBuilder获得GreenDAO中列的最大值?,android,greendao,Android,Greendao,说到ORM,我还是有些生疏,但我真的很喜欢GREENDAO,因为它非常简单和快速。 请告诉我如何在GreenDao中获取表中某列的最大值。 假设我有一个带有id和post id的表,我想得到post id的最大值? 我尝试过使用原始sql构建器,但没有办法 public void getMaxId(int postId) { return postsDao.queryBuilder().where(new WhereCondition.StringCondition(SELE

说到ORM,我还是有些生疏,但我真的很喜欢GREENDAO,因为它非常简单和快速。 请告诉我如何在GreenDao中获取表中某列的最大值。 假设我有一个带有id和post id的表,我想得到post id的最大值? 我尝试过使用原始sql构建器,但没有办法

public void getMaxId(int postId)
   {
       return postsDao.queryBuilder().where(new WhereCondition.StringCondition(SELECT MAX(PostId) FROM POSTS).build());
   }
谢谢你可以试试这个:

  Query query = collectionDao.queryBuilder().where(
            new WhereCondition.StringCondition("UPDATE_TIME=(SELECT MAX(PostId) FROM POSTS)")).build();

这可能不是最优雅的解决方案,但它将完成任务

public Long getMaxId() {
    List<Posts> maxPostIdRow = _postsDao.queryBuilder().where(PostsDao.Properties.Postid.isNotNull()).orderDesc(PostsDao.Properties.Postid).limit(1).list();
    Long maxPostId = maxPostIdRow.get(0).getPostid();
    return maxPostId;
}
public Long getMaxId(){
List maxPostIdRow=_postsDao.queryBuilder().where(postsDao.Properties.Postid.isNotNull()).orderDesc(postsDao.Properties.Postid).limit(1.List();
Long maxPostId=maxPostIdRow.get(0.getPostid();
返回maxPostId;
}
这里的策略是按所需字段对数据库表进行排序,只获取最上面一行,然后返回按其排序的字段的值