Scala Slick вставляет строку, но позволяет базе данных управлять данными DateTime - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу создать метод вставки, который позволяет данным DateTime не быть Option и управляться базой данных. Но я не уверен, как я могу отобразить эти поля после returning into методов

case class User(
  id: Long,
  email: String,
  creationDate: DateTime,
  lastModificationDate: DateTime
)

object User {
  val tupled = (this.apply _).tupled
}

class UserTable(tag: Tag) extends Table[User](tag, "users") {
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def email = column[String]("email")
  def creationDate = column[DateTime]("creationDate", O.SqlType("TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"))
  def lastModificationDate = column[DateTime]("lastModificationDate", O.SqlType("TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"))
  override def * : ProvenShape[User] = (
    id,
    email,
    creationDate,
    lastModificationDate
  ) <> (User.tupled, User.unapply)
}

val userQuery = TableQuery[User]

def insert(email: String): Future[User] = {
  db.run {
    (userQuery.map(u => (
      u.email,
    )) returning userFeeQuery.map(_.id)
    into ((parameters, id) => User(id = id, email = parameters._1)
    )) += ((email))
  }
}
...