如何查找领域数据库中的最后一个元素

时间:2017-11-02 06:42:25

标签: android realm

在领域中,我们可以选择使用findFirst()在数据库中查找第一个元素。但我想反过来做。我想基于我提供的一些条件来持续元素。

找出领域数据库中的第一个元素:

GamesDetail learnGameDetail = realm.where(GamesDetail.class).equalTo("gameType", getResources().getString(R.string.learn_row)).notEqualTo("currentBadge",0).findFirst();

在上面的查询中,所有行都将currentBadge设为零。但最后更新的行将currentBadge具有一些值。我需要找到currentBadge不等于零的最后更新行。

1 个答案:

答案 0 :(得分:2)

而不是

GamesDetail learnGameDetail = realm.where(GamesDetail.class)
        .equalTo("gameType", getResources().getString(R.string.learn_row))
        .notEqualTo("currentBadge",0)
        .findFirst();

你可以做到

GamesDetail learnGameDetail = realm.where(GamesDetail.class)
             .equalTo("gameType", getResources().getString(R.string.learn_row))
             .notEqualTo("currentBadge",0)
             .findAll()
             .last(null);

请注意删除后的插入顺序。通常建议使用findAllSorted()