I'm following this documentation, trying to put together a simple query:
package models
import scala.slick.session.Database
import Database.threadLocalSession
import scala.slick.jdbc.{GetResult, StaticQuery => Q}
import javax.sql.DataSource
import Q.interpolation
object Data {
case class User(user: String, password: String)
lazy val db = Database.forName("default")
implicit val getUserResult = GetResult(r => User(r.<<, r.<<))
def result: Option[User] = {
db.withSession {
sql"SELECT user, password FROM user WHERE user = 'user' AND password = 'pass'".as[User]
}
}
}
Problem is, the row
sql"SELECT user, password FROM user WHERE user = 'user' AND password = 'pass'".as[User]
throws these errors:
Multiple markers at this line
- type mismatch; found : scala.slick.jdbc.StaticQuery0[models.Data.User] required: Option[models.Data.User]
- type mismatch; found : scala.slick.jdbc.StaticQuery0[models.Data.User] required: Option[models.Data.User]
What am I missing here?
Scala 2.10.3, Play Framework 2.2.0, Slick 1.0.1
UPDATE: Solved:
sql"SELECT user, password FROM user WHERE user = 'user' AND password = 'pass'".as[User].firstOption