我正在使用 ScalaQuery 访问 PostgreSql。Data
是一个具有名为 的自动增量主键的表id
,定义为def id = column[Long] ("id", O NotNull, O PrimaryKey, O AutoInc, O DBType "serial")
。我Data.insert(name, filename)
用来创建新Data
记录。有没有办法获得id
刚刚创建的记录?该insert
方法只返回一个由executeUpdate
.
问问题
955 次
1 回答
3
ScalaQuery 不支持开箱即用的序列 ID,您需要先定义一个辅助方法:
val seqID = SimpleFunction.nullary[Int]("LASTVAL")
然后,在范围内使用上述助手,执行插入:
db withSession {
val q = Foo.insert(someInstance)
val id = Query(seqID) // call sequence helper
}
至于评论回复:线程安全,请参考:
https ://stackoverflow.com/a/2944481/185840
和:
https ://github.com/szeiger/scala-query/issues/10#issuecomment-698418
于 2012-04-24T12:52:31.103 回答