【发布时间】:2015-04-23 18:17:53
【问题描述】:
我正在试用 Slick 3.0.0-RC1,但遇到了一个奇怪的问题。
这是我的代码:
import slick.driver.SQLiteDriver.api._
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Await
import scala.concurrent.duration.Duration
lazy val db = Database.forURL(
url = "jdbc:sqlite:thebase.db",
driver = "org.sqlite.JDBC"
)
case class Issue(id: Option[Int], name: String)
class IssueTable(tag: Tag) extends Table[Issue](tag, "issue"){
def id = column[Int]("issue_id", O.PrimaryKey)
def name = column[String]("name")
def * = (id.?, name) <> (Issue.tupled, Issue.unapply _)
}
val issueQuery = TableQuery[IssueTable]
Await.result(db.run(issueQuery.result), Duration.Inf) // This does not compile
错误是:
“无法解析符号结果”
阅读docs 我真的不明白为什么这会失败。我在这里错过了什么吗?
分辨率
szeiger 指出这可能是“IntelliJ 的演示文稿编译器”中的一个错误,而且这很明显。
【问题讨论】:
-
这里的“编译”是什么意思? IntelliJ 的演示编译器中存在一个已知错误,导致它无法找到该方法。实际的 Scala 编译器应该能够编译它。
-
你是对的。我从来没有费心用 sbt 编译,因为 IDEA 给了我一个错误。谢谢!
-
太糟糕了 IntelliJ 没有得到它。将它用于必须使用 IDE 的大型项目时会破坏一切。这是重点 - 获得编译时间检查和自动完成
-
对于遇到相同未解决症状“结果”的人的注意事项:您可能(就像我一样)忘记导入 api
-
对我来说导入 slick.driver.MySQLDriver.api._ 解决了这个问题。