【发布时间】:2020-12-13 05:52:07
【问题描述】:
错误:
value <> is not a member of (slick.lifted.Rep[String], slick.lifted.Rep[String], slick.lifted.Rep[String])
def * : ProvenShape[Employee] = (id, name, dept) <> (Employee.tupled, Employee.unapply)
我的 build.sbt 看起来像这样:
name := "AkkaHttpDemo"
version := "0.1"
scalaVersion := "2.13.3"
lazy val root = project in file(".")
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % "2.6.8" ,
"com.typesafe.akka" %% "akka-stream" % "2.6.8",
"com.typesafe.akka" %% "akka-http" % "10.2.0",
"com.typesafe.slick" %% "slick" % "3.3.2",
"com.typesafe.slick" %% "slick-hikaricp" % "3.3.2",
"org.slf4j" % "slf4j-nop" % "1.6.6" % Test,
"mysql" % "mysql-connector-java" % "8.0.21"
)
表架构如下所示:
package services
import akka.stream.scaladsl._
import slick.jdbc.MySQLProfile._
import slick.ast.ScalaBaseType.stringType
import slick.lifted._
import slick.util._
trait EmployeeStore {
class EmployeeStoreImpl(tag: Tag) extends Table[Employee](tag, _schemaName = Some("MYSCHEMA"),"EMPL") {
def id= column[String]("empid")
def name = column[String]("name")
def dept = column[String]("dept")
def * : ProvenShape[Employee] = (id, name, dept) <> (Employee.tupled, Employee.unapply)
}
val dict = TableQuery[EmployeeStoreImpl]
}
注意*:当我尝试给出下面的代码时也会得到错误
dict.schema.create
无法解析符号架构
【问题讨论】:
-
我强烈建议从模式生成 Scala 代码,而不是相反。 scala-slick.org/doc/3.3.0/code-generation.html 。原因是在某些时候您将不得不为 e 编写数据库迁移。 G。 Flyway,并且不可能使用 slick 生成这些。另一方面,在测试数据库上运行所有迁移,然后从生成的模式生成流畅的代码是微不足道的。相信我,我去过那里,我希望有人在那天告诉我。
标签: mysql scala slick akka-http