2017-06-22 16 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