反向链接

乐趣 <t : TypedRealmObject> EmbeddedRealMobject.反向链接(sourceProperty : KProperty1 < T , * > , sourceClass : KClass < T >): EmbeddedBacklinksDelegate<t>

定义一个反向链接,表示EmbeddedRealmObjectTypedRealmObject之间的一对一反向关系。

您不能直接修改反向链接本身,必须在指向对象上完成。 用法示例:

class Town : EmbeddedRealmObject {
val county: County by backlinks(County::towns)
}

class County : RealmObject {
val towns: RealmList<Town> = realmListOf()
}

因为EmbeddedRealmObject类可能会被与反向链接定义的不同TypedRealmObject引用。 在这种情况下,会引发异常,说明指针对象可能无法解析为T值。

返回

反向链接集合的委托。

参数

t

引用模型的对象类型。

source 属性

引用模型的属性。

抛出异常

如果反向链接的类型不是T


返回一个BacklinksDelegate ,表示两个EmbeddedRealmObjectTypedRealmObject之间的反向关系。

EmbeddedRealmObject.backlinks的具体化便捷包装器。


乐趣 <t : TypedRealmObject> RealmObject.反向链接(sourceProperty : KProperty1 < T , * > , sourceClass : KClass < T >): BacklinksDelegate<t>

定义表示两个 Realm 模型之间反向关系的反向链接集合。 任何直接关系,无论是一对一还是一对多,都可以通过反向链接来反转。

您不能直接在反向链接 collection 中添加或删除项目。当关系发生变化时,collection会自动更新。

可以在RealmObject属性上创建一对一关系的反向链接:

class Town {
var county: County? = null
}

class County {
val towns: RealmResults<Town> by backlinks(Town::county)
}

可以在RealmListRealmSetRealmDictionary属性上创建一对多关系的反向链接:

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 列表并包含对同一对象的多个引用时,反向链接可能会包含重复引用。

返回

反向链接集合的委托。

参数

t

引用模型的对象类型。

source 属性

引用模型的属性。


内联 乐趣 <t : TypedRealmObject> RealmObject.反向链接(sourceProperty : KProperty1 < T , * >): BacklinksDelegate<t>

返回一个表示两个 Realm 模型之间反向关系的BacklinksDelegate

RealmObject.backlinks的具体化便捷包装器。