All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.exposed.sql.statements.UpdateStatement.kt Maven / Gradle / Ivy

There is a newer version: 0.17.14
Show newest version
package org.jetbrains.exposed.sql.statements

import org.jetbrains.exposed.sql.*
import java.sql.PreparedStatement

open class UpdateStatement(val targetsSet: ColumnSet, val limit: Int?, val where: Op? = null): UpdateBuilder(StatementType.UPDATE, targetsSet.targetTables()) {

    open val firstDataSet: List, Any?>> get() = values.toList()

    override fun PreparedStatement.executeInternal(transaction: Transaction): Int {
        if (values.isEmpty()) return 0
        transaction.flushCache()
        return executeUpdate().apply {
            transaction.entityCache.removeTablesReferrers(targetsSet.targetTables())
        }
    }

    override fun prepareSQL(transaction: Transaction): String =
            transaction.db.dialect.functionProvider.update(targetsSet, firstDataSet, limit, where, transaction)

    override fun arguments(): Iterable>> = QueryBuilder(true).run {
        values.forEach {
            registerArgument(it.key, it.value)
        }
        where?.toQueryBuilder(this)
        if (args.isNotEmpty()) listOf(args) else emptyList()
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy