4
Slick DSL允許兩種方式在表格中創建可選字段。在Slick中描述可選字段
對於這種情況類:
case class User(id: Option[Long] = None, fname: String, lname: String)
您可以通過以下方式之一創建一個表映射:
object Users extends Table[User]("USERS") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def fname = column[String]("FNAME")
def lname = column[String]("LNAME")
def * = id.? ~ fname ~ lname <> (User, User.unapply _)
}
和
object Users extends Table[User]("USERS") {
def id = column[Option[Long]]("id", O.PrimaryKey, O.AutoInc)
def fname = column[String]("FNAME")
def lname = column[String]("LNAME")
def * = id ~ fname ~ lname <> (User, User.unapply _)
}
}
有什麼之間的區別二?是老方式和其他新方式,或者他們服務於不同的目的?
我更喜歡第二種選擇,因爲它更一致,因此您將身份定義爲可選的id定義的一部分。