dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToManyLink.kt [49:68]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) { override fun getValue(thisRef: R, property: KProperty<*>): XdMutableQuery { return object : XdMutableQuery(oppositeEntityType) { override val entityIterable: Iterable get() = try { val queryEngine = oppositeEntityType.entityStore.queryEngine val oppositeType = oppositeEntityType.entityType if (thisRef.isReadOnly || queryEngine.modelMetaData?.getEntityMetaData(oppositeType)?.hasSubTypes() == true) { thisRef.reattach().getLinks(property.dbName) } else { TreeKeepingEntityIterable(null, oppositeType, LinkEqual(oppositeField.oppositeDbName, thisRef.reattach()), queryEngine) } } catch (_: UnsupportedOperationException) { // to support weird FakeTransientEntity thisRef.reattach().getLinks(property.dbName) } override fun add(entity: T) { val session = thisRef.threadSessionOrThrow - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToManyChildrenLink.kt [47:66]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) { override fun getValue(thisRef: R, property: KProperty<*>): XdMutableQuery { return object : XdMutableQuery(oppositeEntityType) { override val entityIterable: Iterable get() = try { val queryEngine = oppositeEntityType.entityStore.queryEngine val oppositeType = oppositeEntityType.entityType if (thisRef.isReadOnly || queryEngine.modelMetaData?.getEntityMetaData(oppositeType)?.hasSubTypes() == true) { thisRef.reattach().getLinks(property.dbName) } else { TreeKeepingEntityIterable(null, oppositeType, LinkEqual(oppositeField.oppositeDbName, thisRef.reattach()), queryEngine) } } catch (_: UnsupportedOperationException) { // to support weird FakeTransientEntity thisRef.reattach().getLinks(property.dbName) } override fun add(entity: T) { val session = thisRef.threadSessionOrThrow - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -