作者:小song喪_774 | 来源:互联网 | 2023-01-31 15:56
我正在使用Sugar ORM来查询应用列表.我有一个布尔列用于标记字段,使用:
@Setter @Getter public boolean isNew = false;
现在,在API调用之后,我将更新并保存记录以标记所有新应用程序然后显示我将使用以下内容查询它:
List app_list = AppsModel.find(AppsModel.class, "is_new = ?", "true");
问题是它返回0条目,它在我的结尾有3.要检查我获取所有列表并逐个检查列以检查其值:
List test = AppsModel.listAll(AppsModel.class);
for(int i=0;i
并且它按预期返回3并带有真值.我可以使用这个循环列表,但我不想,因为我想尽可能保持我的代码清洁.
我在这里错过了什么吗?
1> KaHeL..:
好吧,我找到了答案,在这里从satyan自己
所以基本上,使用"true"
将它匹配为String.所以改为使用:
List app_list = AppsModel.find(AppsModel.class, "is_new = ?", "1");
由于SQlite将布尔值存储为0和1.
它不是Sugar ORM,SQLite将布尔值存储为0和1. [参考](https://sqlite.org/datatype3.html)