领域(kotlin):查询具有子对象列表的对象,其中至少有一个子对象具有非空字段
我有以下型号领域(kotlin):查询具有子对象列表的对象,其中至少有一个子对象具有非空字段,kotlin,realm,Kotlin,Realm,我有以下型号 @RealmClass open class Sport (@PrimaryKey open var sportId: Long = 0, //... open var events: RealmList<Event> = RealmList(), ) : RealmObject() @RealmClass open class Event( @PrimaryKey var
@RealmClass
open class Sport (@PrimaryKey open var sportId: Long = 0,
//...
open var events: RealmList<Event> = RealmList(),
) : RealmObject()
@RealmClass
open class Event(
@PrimaryKey var id: Long = 0L,
//...
open var defaultGame: Game? = null
) : RealmObject()
如何更改我的查询以获取体育项目列表,其中每个体育项目至少有一个defaultGame
字段不为空的事件
谢谢 如果此应用程序尚未投入生产,您可以做的一个好技巧是添加一个字符串
defaultGameId
字段,因为字符串将支持isNotNull
。然后当设置了defaultGame
时,还要设置defaultGameId
值。应用程序还没有投入生产,我喜欢这个技巧。这不是“最干净”的解决方案,但足够干净。谢谢
fun getSports(): RealmResults<Sport> = realm.where(Sport::class.java)
.isNotNull("events.defaultGame")
.distinct("sportId")
.sort(orderSportFields, orderSport)
.findAll()
java.lang.IllegalArgumentException: Illegal Argument: isNotNull() by nested query for link field is not supported.