Realm文檔地址: https://realm.io/cn/docs/java/latest/#link-queries
Realm關(guān)聯(lián)查詢時不支持多個關(guān)聯(lián)查詢條件,或者說多個關(guān)聯(lián)查詢條件會進(jìn)行分別查詢,然后再對結(jié)果查找交集,而不是對條件進(jìn)行集合然后查詢結(jié)果。并且由于RealmJava庫不像OC庫和Swift庫一樣支持反向查詢,所以想要實(shí)現(xiàn)文檔描述中查找擁有一條名為fluffy且顏色為brown的狗的人的集合,最好的方法是使用主鍵,具體流程為:
1.給Dog類添加一個主鍵ID,因Realm不支持自增長主鍵,所以主鍵應(yīng)在Dog類的無參構(gòu)造函數(shù)中用UUID賦值;
2.查找所有名為fluffy且顏色為brown的狗;
3.對查找到的狗的列表進(jìn)行遍歷,依次取出狗的ID進(jìn)行關(guān)聯(lián)查詢,獲取到擁有這條狗的人的集合,然后將所有集合進(jìn)行去重整合;