Игровой фреймворк 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))
}