反向链接
定义一个反向链接,表示EmbeddedRealmObject和TypedRealmObject之间的一对一反向关系。
您不能直接修改反向链接本身,必须在指向对象上完成。 用法示例:
class Town : EmbeddedRealmObject {
val county: County by backlinks(County::towns)
}
class County : RealmObject {
val towns: RealmList<Town> = realmListOf()
}
因为EmbeddedRealmObject类可能会被与反向链接定义的不同TypedRealmObject引用。 在这种情况下,会引发异常,说明指针对象可能无法解析为T值。
返回
反向链接集合的委托。
参数
引用模型的对象类型。
引用模型的属性。
抛出异常
返回一个BacklinksDelegate ,表示两个EmbeddedRealmObject和TypedRealmObject之间的反向关系。
EmbeddedRealmObject.backlinks的具体化便捷包装器。
定义表示两个 Realm 模型之间反向关系的反向链接集合。 任何直接关系,无论是一对一还是一对多,都可以通过反向链接来反转。
您不能直接在反向链接 collection 中添加或删除项目。当关系发生变化时,collection会自动更新。
可以在RealmObject属性上创建一对一关系的反向链接:
class Town {
var county: County? = null
}
class County {
val towns: RealmResults<Town> by backlinks(Town::county)
}
可以在RealmList 、 RealmSet或RealmDictionary属性上创建一对多关系的反向链接:
class Parent : RealmObject {
var childrenList: RealmList<Child> = realmListOf()
var childrenSet: RealmSet<Child> = realmSetOf()
var childrenDictionary: RealmSet<Child?> = realmDictionaryOf() // Nullability of Child? is required by RealmDictionary
}
class Child : RealmObject {
val parentsFromList: RealmResults<Parent> by backlinks(Parent::childrenList)
val parentsFromSet: RealmResults<Parent> by backlinks(Parent::childrenSet)
val parentsFromDictionary: RealmResults<Parent> by backlinks(Parent::childrenDictionary)
}
查询反向关系就像查询任何RealmResults 一样。 这意味着反向关系不能为 null,但可以为空(长度为 0)。 可以查询包含反向链接字段的类中的字段。 这相当于链接查询。
由于 Realm 列表允许重复元素,因此当目标属性为 Realm 列表并包含对同一对象的多个引用时,反向链接可能会包含重复引用。
返回
反向链接集合的委托。
参数
引用模型的对象类型。
引用模型的属性。
返回一个表示两个 Realm 模型之间反向关系的BacklinksDelegate 。
RealmObject.backlinks的具体化便捷包装器。