質問

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.PostgresDriverjdbcを使用します。同じことが、スキーマが定義されている場所に適用されます。

編集:

これは私の知識の外側であり、私は100%確実ではありませんが、試してみるでしょう。

PostgresDriverの特徴は、(JdbcDriverから)JdbcProfile.scala形質を拡張します。これは形質署名です:

trait PostgresDriver extends JdbcDrive
.

および将軍のJdbcDriverSqlDriverを拡張します:

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>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top