我有一张桌子,结构如下:

public class GroupDailyDB extends RealmObject{
    @PrimaryKey
    private int groupId;
    private String groupName;
    private String groupDescription;
    private int groupStatus;
    private boolean hasImage;
    private int sweatPoints;
    private long steps;
    private int rank;
    private float percentile;
    private int noOfUsers;
    private boolean isCurrentUserPartOfGroup;
    private boolean isCurrentUserOwner;
}

我的数据已成功保存
android -  Realm Android查询返回错误结果-LMLPHP
刷新时我的json不发送组id 3,我需要更改其状态。
检查代码如下:
for(int i = 0 ; i < groupModel.getData().size() ; i++){
    GroupDailyDB groupDailyDB =
           realm.where(GroupDailyDB.class)
           .notEqualTo("groupId",groupModel.getData().get(i).getGroupId())
           .findFirst();
    Log.i(TAG,"Group id delete daily:  "+groupDailyDB.getGroupId());
}

但我的日志分别打印了ID 4,5,它从不返回ID 3

最佳答案

所以,想想这个…您有一个包含3个对象的列表,每个对象都有一个唯一的id值。循环其他一些id值列表,查询其id不等于循环当前id的3个对象。
对于匹配的id,该查询将返回2个元素(您将其过滤掉),对于不匹配的id,将返回3个元素。您只得到这些查询的第一个元素,您对丢失的数据感到困惑吗?
对于唯一的id值,应该使用equalTo来查找匹配的元素。当没有id值等于时(当findfirst不返回任何对象时),还可能需要添加一些异常检查。

10-07 13:09
查看更多