Я играю с Play Framework, и теперь я пытаюсь получить доступ к базе данных PostgreSQL с простой таблицей «пользователи», определенной следующим образом:
SELECT * FROM users;
id | first_name | last_name | email | password
-c--+------------+-----------+-------+----------
AI | text | text | text | text
В Play у меня есть класс User case:
case class User(id: Int, mail: String, pwd: String, firstName: String, lastName: String)
Я работаю со следующим импортом:
import play.api.db.slick.DatabaseConfigProvider
import slick.driver.PostgresDriver
import slick.driver.PostgresDriver._
import slick.lifted.Tag
Я могу использовать свою базу данных со следующими
@Inject
// Inject Database config provider lib
var dbConfigProvider: DatabaseConfigProvider = _
val dbConfig = dbConfigProvider.get[PostgresDriver]
import dbConfig.driver._
Я следую документу Slick 3.0.0, который находится по этому адресу: http://slick.typesafe.com/doc/3.0.0/queries.html#queries . Чтобы создать свой запрос, я сначала попытался сделать следующее:
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)
}
И это не увенчалось успехом: моя IDE говорит, что Expression не соответствует ожидаемому типу ProvenShape, а ./activator compile
говорит, что
[...] could not find implicit value for parameter tt: slick.ast.TypedType[Int]
Во-вторых, я попытался использовать следующую ссылку slick.typesafe.com/doc/3.0.0/schemas.html#mapped-tables и написал следующее:
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)
}
Но IDE не может распознать символ "‹>", плюс в методе unapply отсутствуют аргументы...
У тебя есть какие-нибудь подсказки для меня? Я сейчас потерян...
Спасибо!