领域Android查询返回错误的结果

时间:2016-10-28 10:37:33

标签: android database realm realm-mobile-platform

我的表格结构如下:

with open(fname) as d:
    data = d.readlines()

tweet = [json.loads(x) for x in data]

我的数据已成功保存 enter image description here 刷新时我的json不发送组ID 3,我需要更改其状态。

检查代码如下:

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;
} 

但我的日志分别打印了id 4,5,它永远不会返回我的身份3

2 个答案:

答案 0 :(得分:1)

所以,想一想......你有一个包含3个对象的列表,每个对象都有一个唯一的ID值。循环其他一些ID值列表,查询其ID不等于循环当前ID的3个对象。

对于匹配ID(您将其过滤掉)的情况,该查询将返回2个元素,对于不匹配的ID,将返回3个元素。您只获得这些查询的第一个元素,并且您对丢失的数据感到困惑?

如果是唯一ID值,则应使用equalTo查找匹配的一个元素。也可能想要在没有ID值相等的情况下添加一些异常检查(当findFirst没有返回任何对象时)

答案 1 :(得分:0)

您的代码不应该像

RealmQuery<GroupDailyDb> query = realm.where(GroupDailyDB.class);
for(int i = 0 ; i < groupModel.getData().size() ; i++){
    query = query.notEqualTo("groupId",groupModel.getData().get(i).getGroupId());
}
GroupDailyDB groupDailyDB = query.findFirst();
Log.i(TAG,"Group id delete daily:  "+groupDailyDB.getGroupId());