我想根據ID從用戶查詢單行。我有以下虛設碼根據Slick中的Id選擇單行
case class User(
id: Option[Int],
name: String
}
object Users extends Table[User]("user") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name")
def * = id ~ name <>(User, User.unapply _)
def findById(userId: Int)(implicit session: Session): Option[User] = {
val user = this.map { e => e }.where(u => u.id === userId).take(1)
val usrList = user.list
if (usrList.isEmpty) None
else Some(usrList(0))
}
}
在我看來,這是findById
查詢單列作爲標識是標準的主鍵的矯枉過正。有誰知道更好的方法?請注意,我正在使用Play! 2.1.0
你認爲firstOption可能從lifted.Query在油滑的2.1被刪除?我相信它已經。 http://slick.typesafe.com/doc/2.1.0/api/#scala.slick.lifted.Query – 2014-09-17 07:30:08
它消失了 - 現在這個答案已經過時了 – BrokenGlass 2016-10-07 18:42:55