Question

lors de la suppression de mon objet tablequery, je devrais pouvoir écrire :

FacebookAuths.delete

Mais je me plains du fait que delete n'est pas une méthode dans TableQuery, même si j'essaye :

Users.filter(_.id === 1337).delete

Cela dit toujours que delete n'est pas une méthode, mais maintenant sur l'objet Query.

Qu'est-ce que je fais mal?Mes importations sont :

import scala.slick.lifted._
import scala.slick.driver.JdbcDriver.simple._

Et toutes les autres choses comme firstOption fonctionnent.

J'utilise Postgres.

Merci!

Était-ce utile?

La solution

Vous utilisez Postgres, donc tu dois import scala.slick.driver.PostgresDriver.simple._ et scala.slick.driver.PostgresDriver à la place du jdbc ceux-ci, la même chose s'applique à l'endroit où votre schéma est défini.

Modifier:

C'est un peu en dehors de mes connaissances et je ne suis pas sûr à 100% mais je vais essayer.

Le PostgresDriver trait étend le JdbcDriver trait (de JdbcProfile.scala), voici la signature du trait :

trait PostgresDriver extends JdbcDrive

et à son tour JdbcDriver s'étend SqlDriver:

trait JdbcDriver extends SqlDriver

Le firstOption la méthode appartient au UnitInvoker trait, donc il ne dépend pas des pilotes importés, la même chose s'applique à list et first et d'autres méthodes, vous pouvez les enregistrer Invoker.scala déposer.Le delete la méthode est plutôt définie dans le DeleteInvoker classe à l'intérieur du JdbcInvokerComponent trait.

Je crois comprendre que lorsqu'on déclare un TableQuery objet voici la signature complète :

val table: PostgresDriver.simple.TableQuery[MyTable] = TableQuery[MyTable]

Pendant que vous déclarez une table avec cette signature :

val table: JdbcDriver.simple.TableQuery[MyTable] = TableQuery[MyTable]

Je ne sais pas pourquoi le delete la méthode n'est pas disponible pour Jdbc directement, vous devrez probablement utiliser Query pour cela, puis utilisez Query.deleteInvoker, mais comme je l'ai dit, je ne suis pas sûr, cela me semble aussi déroutant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top