Search code examples
androidrealmrealm-java

Realm String greaterThan


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.


Solution

  • 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.