按嵌套的 RealmList 项的属性进行筛选



我在编写查询以执行我想要的操作时遇到问题 - 因为我不确定从我的知识库中是否可以这样做,我想我会在这里问一个问题。 我知道其他方法可以做到这一点,但我正在尝试编写一个查询,使我能够将该查询用作托管对象,我提出的其他解决方案不会提供这一点。 问题是这样的:

我有一个站点信息和级别模型,它包含站点以及关联的级别:

open class SiteInfo(
    var orgId: Int = INVALID_ID,
    @PrimaryKey var id: Int = INVALID_ID,
    var site: Site = Site(),
    var levels: RealmList<Level> = RealmList()) : RealmObject()
open class Level(@PrimaryKey var id: Int = INVALID_ID,
                 var building: String = "",
                 var floor: String = "",
                 var site_id: Int = INVALID_ID,
                 var floorplan_url: String? = null) : RealmObject()

我正在尝试过滤级别列表不为空的网站,我已经做到了这一点:

realm.where(SiteInfo::class.java).not().isEmpty("levels").findAllAsync()

但是,要使站点有效,其至少一个级别必须具有非 null floorplan_url。 我不确定是否有查询语法可以支持这一点。 如果有人能让我知道这是否可能,那就太好了 - 否则我会去解决方法。

你试过吗

realm.where(SiteInfo::class.java)
     .isNotEmpty("levels")
     .isNotNull("levels.floorplan_url")        
     .findAllAsync()

最新更新