在ORMLITE中使用Max?

时间:2012-08-30 05:10:27

标签: android ormlite

我需要在ORMLITE中使用max来检索ormlite表中的最新记录 与select max(MODIFIED)FROM TABLE;

类似

我想获得一条记录,该记录具有datemodified的最大值,其中userid是id;对于特定的用户ID,我想找到具有最大日期值的记录,即查找特定用户的最新条目

1 个答案:

答案 0 :(得分:6)

无法说清楚但我想你想知道如何使用ORMLite查询MODIFIED字段等于最大值的某个对象。如果没有两个查询,我不确定你能在SQL中做到这一点。我认为你必须做raw query来获得最大值,然后再做一次查询。

我在版本4.42中将queryRawValue(...)添加到ORMLite,因此您可以执行以下操作:

long max = fooDao.queryRawValue(
    "select max(modified) from foo where userid = ?", id);
// now perform a second query to get the max row
Foo foo = fooDao.queryBuilder().where().eq("modified", max).queryForFirst();

您可以这样做:

GenericRawResults<String[]> rawResults =
    fooDao.queryRaw("select max(modified) from foo where userid = ?", id);
// there should be one result
long max = Long.parseLong(rawResults.getResults().get(0)[0]);
// now perform a second query to get the max row
Foo foo = fooDao.queryBuilder().where().eq("modified", max).queryForFirst();