ScalaQuery を使用して PostgreSql にアクセスしています。は、として定義されたData
という名前の自動インクリメンタル主キーを持つテーブルです。新しいレコードを作成するために使用します。作成したばかりのレコードを取得する方法はありますか? このメソッドは、 によって返される Int 値のみを返します。 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
}
コメント re: スレッド セーフについては、 https ://stackoverflow.com/a/2944481/185840 を参照してください。
および:
https://github.com/szeiger/scala-query/issues/10#issuecomment-698418
于 2012-04-24T12:52:31.103 に答える