Slick Lifted Table 类型错误
Posted
技术标签:
【中文标题】Slick Lifted Table 类型错误【英文标题】:Slick Lifted Table Type Error 【发布时间】:2013-12-30 09:32:58 【问题描述】:将示例从github example 复制到我的项目后,我收到以下错误。我能够编译 github 示例项目。我觉得 sbt 一定是把我搞砸了。我正在使用 sbt 0.13
[error] .scala:13: too many arguments for constructor Object: ()Object
[error] class Suppliers(tag: Tag) extends Table[(Int, String, String, String, String, String)](tag, "SUPPLIERS")
[error] ^
[error].scala:14: object column does not take type parameters.
[error] def id = column[Int]("SUP_ID", O.PrimaryKey) // This is the primary key column
我的 build.sbt 看起来像
导入 AssemblyKeys._
名称:=“我的项目”
版本 := "1.0"
scalaVersion := "2.10.3"
装配设置
seq(Revolver.settings: _*)
libraryDependencies
解析器 += "Sonatype 快照" at "http://oss.sonatype.org/content/repositories/snapshots/"
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
resolvers += "Sonatype Releases" at "http://oss.sonatype.org/content/repositories/releases"
解析器 += "CDH4" at "https://repository.cloudera.com/artifactory/cloudera-repos/"
解析器 += "glassfish" at "https://repository.jboss.org/nexus/content/repositories/glassfish"
resolvers += "spray repo" at "http://repo.spray.io"
解析器 += "anormcypher" at "http://repo.anormcypher.org/"
libraryDependencies +="com.typesafe.akka" %% "akka-actor" % "2.2.0"
libraryDependencies +="com.typesafe.akka" %% "akka-testkit" % "2.2.0"
libraryDependencies +="com.typesafe.akka" %% "akka-transactor" % "2.2.0"
libraryDependencies += "io.spray" % "spray-can" % "1.2-RC2"
libraryDependencies += "io.spray" % "spray-routing" % "1.2-RC2"
libraryDependencies += "io.spray" % "spray-testkit" % "1.2-RC2"
libraryDependencies += "io.spray" %% "spray-json" % "1.2.3"
libraryDependencies += "org.scalatest" % "scalatest_2.10" % "1.9.2"
libraryDependencies += "org.anormcypher" %% "anormcypher" % "0.4.4"
libraryDependencies += "com.h2database" % "h2" % "1.3.166"
libraryDependencies += "com.typesafe.slick" %% "slick" % "2.0.0-M3"
libraryDependencies += "org.postgresql" % "postgresql" % "9.2-1002-jdbc4"
【问题讨论】:
奇怪的错误信息。请将您的示例项目的整个代码推送到某个地方。 我不能推动这个项目,因为它是公司的。我实际上只是将链接文件复制到我的项目中并更改了模块名称。我做了一个文件的要点gist.github.com/bearrito/7923873 只有其他可能相关的错误:.scala:23: type arguments [Suppliers] 不符合 [error] 值的任何重载替代项的界限:[E <: scala.slick .lifted.abstracttable>]]=> scala.slick.lifted.TableQuery[E,E#TableElementType] [E <: scala.slick.lifted.abstracttable>]](缺点: scala.slick.lifted.Tag => E)scala.slick.lifted.TableQuery[E,E#TableElementType] 我最好的猜测是您可能在依赖项中包含了 Slick 1 和 Slick 2。如果您包含 play-slick,它会加载 Slick 1。删除其中之一。但这是一个疯狂的猜测。如果没有看到您项目的代码,我无法更具体。即使是公司,您也可以尽量减少问题的重现。 我重新创建了一个全新的项目github.com/bearrito/replicate-slick-issue 我可以在那里复制它。你有电子邮箱吗。我可以发送一些日志。 【参考方案1】:您的导入错误。好像你使用了一些工具来根据他们的名字自动完成它们(或者你在疯狂地猜测)。无论如何,您导入了错误的东西。只需导入
import scala.slick.driver.H2Driver.simple._
你已经准备好了。见http://slick.typesafe.com/doc/2.0.0-M3/gettingstarted.html#imports
【讨论】:
是的,IntelliJ IDEA 为我填写了表导入。我最终复制了我看到的另一个问题,因此我恢复到 1.0.1。以上是关于Slick Lifted Table 类型错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Slick Lifted Embedding 更新多个列?
推断类型参数[Boolean]不符合方法过滤器的类型参数bounds [T.