Realm String greaterThan

2019-02-27 23:09发布

Is there any way to find all (or just the next) RealmObjects with Strings lexicographically greater than the target?

Something like

MyEntry next = realm.where(MyEntry.class)
        .greaterThan("name", current)
        .findAllSorted("name")
        .first();

which did not work, because greaterThan is not implemented for Strings.

1条回答
\"骚年 ilove
2楼-- · 2019-02-27 23:24

As a non-db-workaround, you can use

List<MyEntry> l = realm.where(MyEntry.class)
    .findAllSorted("name");
int pos = l.indexOf(entryWithName);
MyEntry next = l.get((pos+1)%l.size());

This does the searching outside of the db. Possibly not as well-performing, and not as readable, but it should work.

查看更多
登录 后发表回答