【发布时间】:2015-01-04 00:28:56
【问题描述】:
我想用 ormlite 和 android 获取给定 id 的下一行和上一行 表中的 id 不会自动递增
【问题讨论】:
标签: java android ormlite query-builder
我想用 ormlite 和 android 获取给定 id 的下一行和上一行 表中的 id 不会自动递增
【问题讨论】:
标签: java android ormlite query-builder
您可以这样做: 获取所有行:
List<MyDataObject> list = myDao.queryForAll();
在列表中搜索您的对象的索引:
int myIndex;
for (MyDataObject obj: list) {
if (obj.getId().equals("Myid")) {
myIndex = list.indexOf(obj)
}
}
获取您想要的物品:
MyDataObject previousObject = list.get(myIndex+1);
MyDataObject nextObject = list.get(myIndex-1);
这是一种方法。另一种方法是只获取您的 id 列表,然后搜索您想要的 id(下一个和上一个 id),最后通过 id 进行查询。
【讨论】:
我想用 ormlite 和 android 获取给定 id 的下一行和上一行,表中的 id 不会自动递增
我不是 100% 确定我理解了这个问题,但您当然可以选择大于您的 id、按 id 排序且限制为 1 的项目。这将给出下一个(更大的)行。使用小于将给出上一行。
类似:
QueryBuilder<Foo> qb = fooDao.queryBuilder();
// we want the items greater than this id
qb.where().gt("id", id); // use lt for previous
// we only want the first one
qb.limit(1);
// order by the id
qb.orderBy("id");
Foo previousFoo = qb.queryForFirst();
希望这会有所帮助。
【讨论】: