我有一张桌子,结构如下:
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;
}
我的数据已成功保存
刷新时我的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不返回任何对象时),还可能需要添加一些异常检查。