Игровой фреймворк Scala Slick Вставка запроса без автоинкремента

Доброе утро,

У меня есть следующий фрагмент кода:

def createResponsibleProcessTemplates(processTemplateId: Int, username: String): Future[Int] = db.run {
    println("Create Responsible TemplateId: " + processTemplateId + " UserName: " + username)
    (responsibleProcessTemplates
      returning responsibleProcessTemplates.map(_.processTemplateId)
      ) += ResponsibleProcessTemplateModel(processTemplateId, username)
  }

Моя модель это:

package models

import play.api.libs.json.Json

case class ResponsibleProcessTemplateModel(
                                  processTemplateId: Int,
                                  username: String)

object ResponsibleProcessTemplateModel {
  implicit val responsibleProcessTemplateFormat = Json.format[ResponsibleProcessTemplateModel]
}

И эта черта выглядит так:

trait ResponsibleProcessTemplateComponent {
  self: HasDatabaseConfigProvider[JdbcProfile] =>

  import profile.api._

  class ResponsibleProcessTemplate(tag: Tag) extends Table[ResponsibleProcessTemplateModel](tag, "Responsible_ProcessTemplates") {
    def processTemplateId: Rep[Int] = column[Int]("processTemplateId")

    def username: Rep[String] = column[String]("username")

    def * : ProvenShape[ResponsibleProcessTemplateModel] = (processTemplateId, username) <> ((ResponsibleProcessTemplateModel.apply _).tupled, ResponsibleProcessTemplateModel.unapply)
  }

  val responsibleProcessTemplates: TableQuery[ResponsibleProcessTemplate] = TableQuery[ResponsibleProcessTemplate]
}

Он должен вставить некоторые данные в таблицу базы данных без генерации идентификатора автоинкремента.

Я не получаю ошибок, но данные не хранятся в базе данных.

Спасибо за вашу помощь.

1 ответ

Решение

Я нашел решение!

  def createResponsibleProcessTemplates(processTemplateId: Int, username: String): Future[Int] = {
     db.run(responsibleProcessTemplates.map(x => (x.processTemplateId, x.username)) += (processTemplateId, username))
 }
Другие вопросы по тегам