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

scalikejdbc.OneToXSQL.scala Maven / Gradle / Ivy

The newest version!
package scalikejdbc

/**
 * Endpoint of one-to-x APIs
 */
class OneToXSQL[A, E <: WithExtractor, Z](
  override val statement: String, override val rawParameters: scala.collection.Seq[Any])(val one: WrappedResultSet => A)
  extends SQL[Z, E](statement, rawParameters)(SQL.noExtractor[Z]("one-to-one/one-to-many operation needs toOne(RS => Option[B]).map((A,B) => A) or toMany(RS => Option[B]).map((A,Seq(B) => A)."))
  with AllOutputDecisionsUnsupported[Z, E] {

  def toOne[B](to: WrappedResultSet => B): OneToOneSQL[A, B, E, Z] = {
    val q: OneToOneSQL[A, B, E, Z] = new OneToOneSQL(statement, rawParameters)(one)(to.andThen((b: B) => Option(b)))((a, b) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
    q
  }

  def toOptionalOne[B](to: WrappedResultSet => Option[B]): OneToOneSQL[A, Option[B], E, Z] = {
    val q: OneToOneSQL[A, Option[B], E, Z] = new OneToOneSQL(statement, rawParameters)(one)(to.andThen((maybeB: Option[B]) => Option(maybeB)))((a, maybeB) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
    q
  }

  def toMany[B](to: WrappedResultSet => Option[B]): OneToManySQL[A, B, E, Z] = {
    val q: OneToManySQL[A, B, E, Z] = new OneToManySQL(statement, rawParameters)(one)(to)((a, bs) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
    q
  }

  def toManies[B1, B2](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2]
  ): OneToManies2SQL[A, B1, B2, E, Z] = {
    val q: OneToManies2SQL[A, B1, B2, E, Z] = new OneToManies2SQL(
      statement, rawParameters)(one)(to1, to2)((a, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3]
  ): OneToManies3SQL[A, B1, B2, B3, E, Z] = {
    val q: OneToManies3SQL[A, B1, B2, B3, E, Z] = new OneToManies3SQL(
      statement, rawParameters)(one)(to1, to2, to3)((a, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4]
  ): OneToManies4SQL[A, B1, B2, B3, B4, E, Z] = {
    val q: OneToManies4SQL[A, B1, B2, B3, B4, E, Z] = new OneToManies4SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4)((a, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5]
  ): OneToManies5SQL[A, B1, B2, B3, B4, B5, E, Z] = {
    val q: OneToManies5SQL[A, B1, B2, B3, B4, B5, E, Z] = new OneToManies5SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5)((a, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6]
  ): OneToManies6SQL[A, B1, B2, B3, B4, B5, B6, E, Z] = {
    val q: OneToManies6SQL[A, B1, B2, B3, B4, B5, B6, E, Z] = new OneToManies6SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6)((a, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7]
  ): OneToManies7SQL[A, B1, B2, B3, B4, B5, B6, B7, E, Z] = {
    val q: OneToManies7SQL[A, B1, B2, B3, B4, B5, B6, B7, E, Z] = new OneToManies7SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7)((a, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8]
  ): OneToManies8SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, E, Z] = {
    val q: OneToManies8SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, E, Z] = new OneToManies8SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8)((a, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9]
  ): OneToManies9SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, E, Z] = {
    val q: OneToManies9SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, E, Z] = new OneToManies9SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9)((a, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10]
  ): OneToManies10SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, E, Z] = {
    val q: OneToManies10SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, E, Z] = new OneToManies10SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10)((a, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11]
  ): OneToManies11SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, E, Z] = {
    val q: OneToManies11SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, E, Z] = new OneToManies11SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11)((a, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12]
  ): OneToManies12SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, E, Z] = {
    val q: OneToManies12SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, E, Z] = new OneToManies12SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12)((a, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13]
  ): OneToManies13SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = {
    val q: OneToManies13SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, E, Z] = new OneToManies13SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13)((a, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14]
  ): OneToManies14SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, E, Z] = {
    val q: OneToManies14SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, E, Z] = new OneToManies14SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14], to15: WrappedResultSet => Option[B15]
  ): OneToManies15SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, E, Z] = {
    val q: OneToManies15SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, E, Z] = new OneToManies15SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14, to15)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14], to15: WrappedResultSet => Option[B15], to16: WrappedResultSet => Option[B16]
  ): OneToManies16SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, E, Z] = {
    val q: OneToManies16SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, E, Z] = new OneToManies16SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14, to15, to16)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14], to15: WrappedResultSet => Option[B15], to16: WrappedResultSet => Option[B16], to17: WrappedResultSet => Option[B17]
  ): OneToManies17SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, E, Z] = {
    val q: OneToManies17SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, E, Z] = new OneToManies17SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14, to15, to16, to17)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14], to15: WrappedResultSet => Option[B15], to16: WrappedResultSet => Option[B16], to17: WrappedResultSet => Option[B17], to18: WrappedResultSet => Option[B18]
  ): OneToManies18SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, E, Z] = {
    val q: OneToManies18SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, E, Z] = new OneToManies18SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14, to15, to16, to17, to18)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14], to15: WrappedResultSet => Option[B15], to16: WrappedResultSet => Option[B16], to17: WrappedResultSet => Option[B17], to18: WrappedResultSet => Option[B18], to19: WrappedResultSet => Option[B19]
  ): OneToManies19SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, E, Z] = {
    val q: OneToManies19SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, E, Z] = new OneToManies19SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14, to15, to16, to17, to18, to19)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14], to15: WrappedResultSet => Option[B15], to16: WrappedResultSet => Option[B16], to17: WrappedResultSet => Option[B17], to18: WrappedResultSet => Option[B18], to19: WrappedResultSet => Option[B19], to20: WrappedResultSet => Option[B20]
  ): OneToManies20SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20, E, Z] = {
    val q: OneToManies20SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20, E, Z] = new OneToManies20SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14, to15, to16, to17, to18, to19, to20)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }

  def toManies[B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20, B21](
    to1: WrappedResultSet => Option[B1], to2: WrappedResultSet => Option[B2], to3: WrappedResultSet => Option[B3], to4: WrappedResultSet => Option[B4], to5: WrappedResultSet => Option[B5], to6: WrappedResultSet => Option[B6], to7: WrappedResultSet => Option[B7], to8: WrappedResultSet => Option[B8], to9: WrappedResultSet => Option[B9], to10: WrappedResultSet => Option[B10], to11: WrappedResultSet => Option[B11], to12: WrappedResultSet => Option[B12], to13: WrappedResultSet => Option[B13], to14: WrappedResultSet => Option[B14], to15: WrappedResultSet => Option[B15], to16: WrappedResultSet => Option[B16], to17: WrappedResultSet => Option[B17], to18: WrappedResultSet => Option[B18], to19: WrappedResultSet => Option[B19], to20: WrappedResultSet => Option[B20], to21: WrappedResultSet => Option[B21]
  ): OneToManies21SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20, B21, E, Z] = {
    val q: OneToManies21SQL[A, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20, B21, E, Z] = new OneToManies21SQL(
      statement, rawParameters)(one)(to1, to2, to3, to4, to5, to6, to7, to8, to9, to10, to11, to12, to13, to14, to15, to16, to17, to18, to19, to20, to21)((a, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) => a.asInstanceOf[Z])
    q.queryTimeout(queryTimeout)
    q.fetchSize(fetchSize)
    q.tags(tags.toSeq*)
  }


}

object OneToXSQL {
  def unapply[A, E <: WithExtractor, Z](sqlObject: OneToXSQL[A, E, Z]): Some[(String, scala.collection.Seq[Any], WrappedResultSet => A)] = {
    Some((sqlObject.statement, sqlObject.rawParameters, sqlObject.one))
  }
  def handleException(e: Exception): Nothing = e match {
    case invalidColumn: InvalidColumnNameException =>
      throw new ResultSetExtractorException(
        "Failed to extract ResultSet because the specified column name (" + invalidColumn.name + ") is invalid." +
          " If you're using SQLInterpolation, you may mistake u.id for u.resultName.id.")
    case e: Exception => throw e
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy