Sugar ORM无法使用布尔值

时间:2017-06-22 03:33:29

标签: android sqlite sugarorm

我正在使用Sugar ORM来查询应用列表。我有一个布尔列用于标记字段,使用:

@Setter @Getter public boolean isNew = false;

现在在API调用之后,我将更新并保存记录以标记所有新应用,然后为了显示我将使用以下方式查询:

List<AppsModel> app_list = AppsModel.find(AppsModel.class, "is_new = ?", "true");

问题是它返回0条目,在我的结尾有3条。要检查我是否获得所有列表并逐一检查列以检查其值:

List<AppsModel> test = AppsModel.listAll(AppsModel.class);
        for(int i=0;i<test.size();i++){
            Log.e("Test app size", String.valueOf(test.get(i).isNew()));
        }

它按预期返回3并带有真值。我可以使用这个循环列表,但我不想,因为我想尽可能保持我的代码清洁。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:8)

好的,我从satyan自己找到了答案here

所以基本上,使用"true"会将其匹配为String。所以改为使用:

List<AppsModel> app_list = AppsModel.find(AppsModel.class, "is_new = ?", "1");

由于SQlite将布尔值存储为0和1。