Scala Slick Deleteが働いていません
-
20-12-2019 - |
質問
TailQueryオブジェクトから削除すると、書き込むことができるはずです。
FacebookAuths.delete
.
しかし、削除はテーブルクリーのメソッドではないことを不満です。
Users.filter(_.id === 1337).delete
.
削除はメソッドではなく、クエリオブジェクトでは存在しないと言っています。
私は何をしていますか?私の輸入は:
ですimport scala.slick.lifted._
import scala.slick.driver.JdbcDriver.simple._
.
とFirstOptionのような他のものはすべて働きます。
Postgresを使用しています。
ありがとう!
解決
Postgres
を使用しているので、import scala.slick.driver.PostgresDriver.simple._
の代わりにscala.slick.driver.PostgresDriver
とjdbc
を使用します。同じことが、スキーマが定義されている場所に適用されます。
編集:
これは私の知識の外側であり、私は100%確実ではありませんが、試してみるでしょう。
PostgresDriver
の特徴は、(JdbcDriver
から)JdbcProfile.scala
形質を拡張します。これは形質署名です:
trait PostgresDriver extends JdbcDrive
.
および将軍のJdbcDriver
はSqlDriver
を拡張します:
trait JdbcDriver extends SqlDriver
.
firstOption
メソッドはUnitInvoker
の形質に属しているため、インポートされたドライバから依存しません。代わりにlist
メソッドは、first
形式のInvoker.scala
クラスで定義されています。
私の理解は、delete
オブジェクトを宣言するとき、これは完全なシグネチャです:
val table: PostgresDriver.simple.TableQuery[MyTable] = TableQuery[MyTable]
.
この署名でテーブルを宣言している間:
val table: JdbcDriver.simple.TableQuery[MyTable] = TableQuery[MyTable]
.
DeleteInvoker
メソッドが直接JdbcInvokerComponent
に使用できない理由はわかりません。 / P>
所属していません StackOverflow