2017-06-22 15 views
1

我正在使用Sugar ORM查询应用程序列表。我有标记领域的布尔列在此使用: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预期与真实值。我可以利用这个循环列表,但我不想,因为我想保持我的代码尽可能干净。

我在这里错过了什么吗?

回答

5

好吧,我发现从satyan自己

所以基本上,使用"true"将匹配它作为字符串的答案here。因此,不是使用:

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

作为SQlite的存储布尔值和值作为0 1.

+2

这不是糖ORM,SQLite的存储布尔值0和1 [参考文献](https://sqlite.org /datatype3.html) –

+0

我看到谢谢你指出了。 – KaHeL