使用光滑获取最后一次插入的自动生成ID的最佳方法是什么?

时间:2013-09-09 10:25:11

标签: scala slick

我正在使用Slick(Scala)来完成我的项目。我的问题是如何使用提升的嵌入API检索最后插入的ID。 ID自动递增。我已经阅读了文档,但我恐怕不太了解它。您能否提供有关如何执行此操作的更详细说明和示例代码?

1 个答案:

答案 0 :(得分:4)

the Slick documentation中所述,您可以使用returning <Table>.id变体。

假设你有一只猫以一种光滑的方式定义:

case class Cat(id: Option[Int], name: String)
object Cats extends Table[Cat]("cats") {
  def id = column[Int]("cat_id", O.PrimaryKey, O.AutoInc)
  def name = column[String]("name")
  def * = id.? ~ name <> (Cat.apply _, Cat.unapply _)
}

然后,您可以在插入新猫的那一刻收到新创建的id

val newCatId =
  Cats returning Cats.id insert Cat(None, "Cringer")

希望有所帮助;)