我有一个结构如下的表:
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 不返回任何对象时)也可能想要添加一些异常检查
关于android - Realm Android 查询返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40303322/