override fun mapIdComparison()

in exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/Alias.kt [75:96]


    override fun mapIdComparison(
        toCompare: Any?,
        booleanOperator: (Column<*>, Expression<*>) -> Op<Boolean>,
    ): Op<Boolean> = when (delegate) {
        is CompositeIdTable -> {
            (toCompare as? EntityID<CompositeID>) ?: error("toCompare must be an EntityID<CompositeID> value")
            delegateIdColumns.map { column ->
                val delegateColumn = originalColumn(column)
                val otherValue = if (delegateColumn in toCompare.value.values) {
                    toCompare.value[delegateColumn as Column<EntityID<Any>>]
                } else {
                    error("Comparison CompositeID is missing a key mapping for ${delegateColumn?.name}")
                }
                booleanOperator(column, column.wrap(otherValue.value as? EntityID<*> ?: otherValue))
            }.compoundAnd()
        }
        is IdTable<*> -> {
            val singleId = delegateIdColumns.single()
            booleanOperator(singleId, singleId.wrap(toCompare))
        }
        else -> error("idColumns for mapping are only available from IdTable instances")
    }