open fun validateLastBatch()

in exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/statements/BatchInsertStatement.kt [73:91]


    open fun validateLastBatch() {
        val tr = currentTransaction()
        val cantBeDefaulted = (allColumnsInDataSet - values.keys).filterNot { it.isDefaultable() }
        if (cantBeDefaulted.isNotEmpty()) {
            val columnList = cantBeDefaulted.joinToString { tr.fullIdentity(it) }
            throw BatchDataInconsistentException(
                "Can't add a new batch because columns: $columnList don't have client default values. DB defaults are not supported in batch inserts"
            )
        }
        val requiredInTargets = (targets.flatMap { it.columns } - values.keys).filter {
            !it.isDefaultable() && !it.columnType.isAutoInc && it.dbDefaultValue == null && it.columnType !is EntityIDColumnType<*>
        }
        if (requiredInTargets.any()) {
            val columnList = requiredInTargets.joinToString { tr.fullIdentity(it) }
            throw BatchDataInconsistentException(
                "Can't add a new batch because columns: $columnList don't have default values. DB defaults are not supported in batch inserts"
            )
        }
    }