Scala Play框架滑头类型不匹配问题
我正在阅读以下文档,试图整理一个简单的查询:Scala Play框架滑头类型不匹配问题,scala,playframework,playframework-2.0,slick,play-slick,Scala,Playframework,Playframework 2.0,Slick,Play Slick,我正在阅读以下文档,试图整理一个简单的查询: 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 U
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]
}
}
}
抛出以下错误:
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]
我错过了什么
Scala 2.10.3,Play Framework 2.2.0,Slick 1.0.1
更新:已解决:
sql"SELECT user, password FROM user WHERE user = 'user' AND password = 'pass'".as[User].firstOption
尝试在
之后添加.firstOption
。作为[用户]
?根据这一点,我们将把一个StaticQuery0[R]
转换成一个选项[R]
,这是您想要在那里做的。@Mikesname不喜欢它,错误更改为:value headOption不是scala.slick.jdbc.StaticQuery0[models.Data.User]的成员。
对不起,我是说。firstOption
@Mikesname谢谢,这很有效。
sql"SELECT user, password FROM user WHERE user = 'user' AND password = 'pass'".as[User].firstOption