2017-09-28 23 views
0

我想同時查詢包含Realm中字符串值列表的幾個字段。 比方說,我有以下對象:是否有可能查詢包含字符串值列表(Realm爪哇)的幾個字段

public class Article extends RealmObject implements Serializable{ 
    @PrimaryKey 
    @Required 
    private String aID = UUID.randomUUID().toString(); 

    private String title; 
    private String description; 
    private String authors; 
    private RealmList<Tag> tags; 
} 

我想查詢所有什麼標題或說明或標籤包含字符串列表中的物品。

我知道謂語「」可以用來值的列表匹配到外地如下:

realm.where(Article.class).beginGroup().in("title", listOfValues Case.INSENSITIVE).or().in("description", listOfValues, Case.INSENSITIVE).or().in("tags.tag",listOfValues, Case.INSENSITIVE).findAll(); 

這隻會返回「匹配」的價值觀,但我尋找「」包含「的值。還有「包含」謂詞,但我認爲它只能與一個值相比較。

有沒有辦法做到這一點?

+1

'contains' – EpicPandaForce

+0

@EpicPandaForce葉氏,我想這樣做。你是否打算在積壓中加入類似的東西?我將在此發佈解決方案。謝謝 – user274051

回答

1

解決這個問題的工作就像@EpicPandaForce在他的評論中提出的,迭代和使用contains。下面是這樣的代碼:我想你會需要迭代,並使用

RealmResults<Article> newResults; 
RealmQuery<Article> where = r.where(Article.class).beginGroup(); 
for (String keyword : keywords) { 
    where = where.contains("name", keyword, Case.INSENSITIVE) 
      .or() 
      .contains("description", keyword, Case.INSENSITIVE) 
      .or() 
      .equalTo("tags.tag", keyword, Case.INSENSITIVE); 
} 

newResults = where.endGroup().findAll(); 
相關問題