역링크

EmbeddedRealmObjectTypedRealmObject 간의 일대일 역관계를 나타내는 역링크를 정의합니다.

역링크 자체는 직접 수정할 수 없으며 포인팅 객체에서 수행해야 합니다. 사용 예시:

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

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

EmbeddedRealmObject 클래스가 역링크에 정의된 것과 다른 TypedRealmObject 에서 참고할 수 있기 때문입니다. 이러한 경우 포인팅 객체가 T 값으로 해석되지 못할 수 있다는 예외가 발생합니다.

Return

역링크 컬렉션에 대한 위임.

매개변수

t

모델을 참고하는 객체 유형입니다.

source속성

모델을 참고하는 속성입니다.

스로우

역링크가 T유형이 아닌 경우


EmbeddedRealmObjectTypedRealmObject 간의 역관계를 나타내는 BacklinksDelegate 를 반환합니다.

EmbeddedRealmObject.backlinks 에 대한 편의 래퍼를 구체화했습니다.


fun <t : TypedRealmObject> RealmObject.역링크(sourceProperty: KProperty1<T, *>, sourceClass: KClass<T>): 역링크Delegate<t>

두 Realm 모델 간의 역관계를 나타내는 역링크 collection을 정의합니다. 일대일 또는 일대다 관계와 같은 모든 직접 관계는 역링크를 통해 되돌릴 수 있습니다.

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 목록이고 동일한 객체에 대한 여러 참조가 포함된 경우 역링크에 중복 참조가 포함될 수 있습니다.

Return

역링크 컬렉션에 대한 위임.

매개변수

t

모델을 참고하는 객체 유형입니다.

source속성

모델을 참고하는 속성입니다.


인라인 fun <t : TypedRealmObject> RealmObject.역링크(sourceProperty: KProperty1<T, *>): 역링크Delegate<t>

두 Realm 모델 간의 역관계를 나타내는 BacklinksDelegate 를 반환합니다.

RealmObject.backlinks 에 대한 편의 래퍼를 구체화했습니다.