当谈到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());
}
由于
答案 0 :(得分:4)
这可能不是最优雅的解决方案,但它可以完成工作。
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;
}
此处的策略是按所需字段对数据库表进行排序,仅抓取顶行,然后返回排序字段的值。
答案 1 :(得分:1)
你可以试试这个:
Query query = collectionDao.queryBuilder().where(
new WhereCondition.StringCondition("UPDATE_TIME=(SELECT MAX(PostId) FROM POSTS)")).build();