1
我發現很多關於「舊」AutoInc函數如何工作的舊帖子,但幾乎沒有文章介紹新AutoInc函數的實際工作方式。Slick 2.0 MultiDBCakeExample AutoInc「into」函數
沒有與用戶和圖片定義了兩個專用自動遞增功能:
private val picturesAutoInc = pictures
returning pictures.map(_.id) into { case (p, id) => p.copy(id = id) }
private val usersAutoInc = users.map(u => (u.name, u.pictureId))
returning users.map(_.id) into {
case (_, id) => id
}
我發現returning
方法上http://slick.typesafe.com/doc/2.0.0/queries.html#inserting
但是,這是什麼into
功能?它有什麼作用?它採取什麼措施?
這是我的課程,我應該如何編寫自己的autoInc?
case class Label (id: Option[Int] = None, tag_name: String)
class Labels (tag: Tag) extends Table[Label](tag, "Labels") {
def id = column[Option[Int]]("TAG_ID", O.PrimaryKey, O.AutoInc)
def tag_name = column[String]("TAG_NAME")
def * = (id, tag_name) <> (Label.tupled, Label.unapply _)
}
如果'的情況下(P,ID)'是插入的值,如果我們將像10多我們該怎麼辦一張大桌子的價值? –
我不確定你瞭解你的問題。你賦予'into'的函數的第一個參數是你賦予插入的光滑值。如果你調用'someTable.insert(a,b,c)',它實際上會自動修改爲'someTable.insert((a,b,c))',這意味着你得到了(a,b,c)作爲價值。希望這回答你的問題。 – cvogt