使用 ormlite 和 android 获取给定 id 的下一行和上一行

get next and previous rows of a given id with ormlite and android

我想使用 ormlite 和 android 获取给定 ID 的下一行和上一行 table 中的 ID 不会自动递增

您可以这样做: 获取所有行:

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 进行查询。

I want to get next and previous rows of a given id with ormlite and android the ids in the table is not auto incremented

我不是 100% 确定我理解这个问题,但你当然可以 select 对于大于你的 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();

希望对您有所帮助。