我做了什么:
我正在尝试使用Play框架实现oauth2提供程序。我正在使用“scala-oauth2-provider”样本来执行此操作。 "https://github.com/nulab/scala-oauth2-provider"
我列出了我在申请中使用的版本:
播放 - 2.5
数据库 - Mysql 5.1.22
ISSUE:
AuthCode.scala:19:找不到参数tm的隐含值: scala.slick.ast.TypedType [org.joda.time.DateTime] [error] def createdAt = columnDateTime
代码段:
import java.util.UUID
import org.joda.time.DateTime
import scala.slick.driver.MySQLDriver.simple._
case class AuthCode(authorizationCode: String, userGuid: UUID, redirectUri: Option[String], createdAt: DateTime, scope: Option[String], clientId: Option[String], expiresIn: Int)
class AuthCodes(tag: Tag) extends Table[AuthCode](tag, "auth_codes") {
def authorizationCode = column[String]("authorization_code", O.PrimaryKey)
def userGuid = column[UUID]("user_guid")
def redirectUri = column[Option[String]]("redirect_uri")
def createdAt = column[DateTime]("created_at")
def scope = column[Option[String]]("scope")
def clientId = column[Option[String]]("client_id")
def expiresIn = column[Int]("expires_in")
def * = (authorizationCode, userGuid, redirectUri, createdAt, scope, clientId, expiresIn) <> (AuthCode.tupled, AuthCode.unapply)
}
如何解决此问题?任何人都可以帮我解决这个问题吗?
注意:我也尝试过解决方案https://stackoverflow.com/a/22578950/1584121。但我得到同样的问题:(
答案 0 :(得分:1)
我没有查看示例项目,但我使用了https://github.com/tototoshi/slick-joda-mapper提供的解决方案。希望您可以将其应用于您的代码。我使用Scala 2.11.8和Slick 3.1.1,因此使用slick-joda-mapper 2.2.0。如果您使用不同版本的Scala和/或Slick,则可能必须选择不同版本的slick-joda-mapper。
首先将所需的依赖项添加到build.sbt
:
libraryDependencies ++= Seq(
"com.typesafe.slick" %% "slick" % "3.1.1",
"org.slf4j" % "slf4j-nop" % "1.6.4",
"com.github.tototoshi" %% "slick-joda-mapper" % "2.2.0",
"joda-time" % "joda-time" % "2.7",
"org.joda" % "joda-convert" % "1.7"
)
在Scala源文件中,使用以下导入:
import slick.driver.MySQLDriver.api._
import scala.concurrent.ExecutionContext.Implicits.global
import com.github.tototoshi.slick.MySQLJodaSupport._
import org.joda.time.DateTime
然后,您可以在Slick查询中使用DateTime
对象。