ich mit Play-Framework spielte, und ich versuche jetzt eine PostgreSQL-Datenbank mit einer einfachen Tabelle „Benutzer“ zugreifen zu können, wie folgt definiert:Einfache PostgreSQL Abfrage im Play-Framework + Slick 3.0.0 ProvenShape Ausgabe
SELECT * FROM users;
id | first_name | last_name | email | password
-c--+------------+-----------+-------+----------
AI | text | text | text | text
Im Play, habe ich meine Benutzer Fall Klasse:
case class User(id: Int, mail: String, pwd: String, firstName: String, lastName: String)
ich mit den folgenden Importe arbeite:
import play.api.db.slick.DatabaseConfigProvider
import slick.driver.PostgresDriver
import slick.driver.PostgresDriver._
import slick.lifted.Tag
kann ich meine Datenbank mit dem
folgenden verwenden@Inject
// Inject Database config provider lib
var dbConfigProvider: DatabaseConfigProvider = _
val dbConfig = dbConfigProvider.get[PostgresDriver]
import dbConfig.driver._
Ich folge der doc von Slick 3.0.0, die auf dieser Adresse lautet: http://slick.typesafe.com/doc/3.0.0/queries.html#queries. Zu meiner Anfrage zu bauen versucht haben, ich zuerst folgendes zu tun:
class Users(tag: Tag) extends Table[(Int,String,String,String,String)](tag, "users") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def mail = column[String]("email")
def pwd = column[String]("password")
def firstName = column[String]("first_name")
def lastName = column[String]("last_name")
def * = (id,mail,pwd,firstName,lastName)
}
Und es war kein Erfolg: meine IDE sagt, dass Expression nicht zu erwarten Typ ProvenShape nicht entspricht, und ./activator compile
sagt, dass
[...] could not find implicit value for parameter tt: slick.ast.TypedType[Int]
ich habe versucht, zweitens die folgenden Link slick.typesafe.com/doc/3.0.0/schemas.html#mapped-tables zu verwenden und schrieb dies:
class Users(tag: Tag) extends Table[User](tag, "users") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def mail = column[String]("email")
def pwd = column[String]("password")
def firstName = column[String]("first_name")
def lastName = column[String]("last_name")
def * = (id, mail, pwd, firstName, lastName) <> (User.tupled, User.unapply)
}
Aber die IDE ist nicht in der Lage, die "zu erkennen <>“Symbol, und wird args in der Unapply Methode fehlt ...
Haben Sie Anhaltspunkte für mich? Ich bin jetzt verloren ...
Dank!