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

org.scalaquery.ql.basic.BasicUpdateInvoker.scala Maven / Gradle / Ivy

package org.scalaquery.ql.basic

import org.scalaquery.ql.{Query, Projection, ColumnBase}
import org.scalaquery.session.{Session, ReadAheadIterator, PositionedParameters}
import org.scalaquery.util.{CloseableIterator, NamingContext}

class BasicUpdateInvoker[T] (query: Query[ColumnBase[T]], profile: BasicProfile) {

  protected lazy val built = profile.buildUpdateStatement(query, NamingContext())

  def updateStatement = getStatement

  protected def getStatement = built.sql

  def update(value: T)(implicit session: Session): Int = session.withPreparedStatement(updateStatement) { st =>
    st.clearParameters
    val pp = new PositionedParameters(st)
    query.value.setParameter(profile, pp, Some(value))
    built.setter(pp, null)
    st.executeUpdate
  }

  def updateInvoker: this.type = this
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy