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"
)
}
}