3

ScalaQuery を使用して PostgreSql にアクセスしています。は、として定義されたDataという名前の自動インクリメンタル主キーを持つテーブルです。新しいレコードを作成するために使用します。作成したばかりのレコードを取得する方法はありますか? このメソッドは、 によって返される Int 値のみを返します。 iddef id = column[Long] ("id", O NotNull, O PrimaryKey, O AutoInc, O DBType "serial")Data.insert(name, filename)DataidinsertexecuteUpdate

4

1 に答える 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 に答える