其他分享
首页 > 其他分享> > android – ORMLite – 返回项目w /最大ID(或值)

android – ORMLite – 返回项目w /最大ID(或值)

作者:互联网

我正在使用ORMLite w / Android.我想获取具有最高值ID的对象的ID值.

我还想将此概括为请求任意字段的具有最大/最小值的单个对象.这样做的最佳做法是什么?

我意识到我可以执行一个原始查询,但还有其他任何方式可以跳出来吗?在iOS上的CoreData中执行FetchRequests时,我正在想象类似于Predicates的东西.

解决方法:

你的答案看起来不错@Ben但我想我会为后代提供一些额外的信息:

>如果您知道限制(1)将返回单个结果,则可以使用queryForFirst.

qBuilder.orderby("my_field_column_name", false);
qBuilder.limit(1L);
MyEntity maxEntity = myEntityDao.queryForFirst(qBuilder.prepare());

>原始查询也可以.它涉及更多的对象和检查,但如果表大小很大则会更便宜,因为您不需要进行排序.

qBuilder.selectRaw("MAX(my_field_column_name)");
GenericRawResults<String[]> results =
    myEntityDao.queryRaw(qBuilder.prepareStatementString());
String[] result = results.getResults().next();
int max = Integer.parseInt(result[0]);

显然,如果您的列是不同的类型,那么您将从result [0]中获得一个不同的对象,您必须根据对象将其转换为适当的类型.

标签:android,ormlite
来源: https://codeday.me/bug/20190713/1447403.html