пример кода
В моем случае:
import slick.jdbc.MySQLProfile.api._
import scala.concurrent.Await
import scala.concurrent.duration.Duration
case class User(id: Option[Int], vid: Int, first: String, last: String)
class Users(tag: Tag) extends Table[User](tag, "users") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def vid = column[Int]("vid")
def first = column[String]("first")
def last = column[String]("last")
def * = (id.?, vid, first, last) <> (User.tupled, User.unapply)
}
val users = TableQuery[Users]
def usersForInsert = users.map(u => (u.vid, u.first, u.last).shaped <>
({t => User(None, t._1, t._2, t._3)}, {(u: User) => Some((u.vid, u.first, u.last))}))
//#insert vid value
val userWithId =
(users returning users.map(_.id)
into ((user,id) => user.copy(id=Some(id)))
//Here, I wonder how to replace the value of vid by id
) += User(None, 4, "Stefan", "Zeiger")
//#insert
val userWithIdRes = Await.result(db.run(users.schema.create >> userWithId), Duration.Inf)
println(userWithIdRes)
Я пробовал несколько способов, но всегда получаю ошибки при компиляции и запуске.
Спасибо за чтение вопрос начального уровня scala -slick