我发现很多关于“旧”AutoInc功能如何工作的旧帖子,但几乎没有关于新AutoInc功能如何实际工作的帖子。
使用User和Picture定义了两个私有AutoInc函数:
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
}
我在http://slick.typesafe.com/doc/2.0.0/queries.html#inserting
上找到了returning
方法
但这个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 _)
}
答案 0 :(得分:3)
它允许您将插入的值和生成的键映射到所需的目标值。
直到现在还没有记录。我创建了一个包含文档的PR:https://github.com/slick/slick/pull/687