使用 slick 3.0.0-RC1 无法在 TableQuery 上找到方法结果

can't find method result on TableQuery with slick 3.0.0-RC1

我正在试用 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

错误是:

"Cannot resolve symbol result"

正在阅读 docs 我真的不明白为什么会失败。我在这里错过了什么吗?

分辨率

szeiger 指出这可能是“IntelliJ 的演示编译器”中的一个错误,而且是正确的。

你可以试试

val result = db.withSession(implicit session => issueQuery.list)

我确实遇到了同样的问题,这是我为摆脱它所做的工作:

  1. 已将 IntelliJ 更新至版本 14.1.3
  2. 使用 Scala 插件版本 1.5

我的scala版本是2.11.6

我希望这对可能 运行 遇到同样问题的人有所帮助!

这是我在使用 IntelliJ IDEA 时经常遇到的一个常见问题。

如果使用激活器,命令 - "activator idea" 帮助我解决了问题。

它重新创建了 .idea 和 IdeaProject.iml 文件,然后重新加载了项目。 我目前使用activator-1.3.4

如果有人遇到类似问题:

TableQuery 上没有结果方法

仔细检查您是否有 import slick.jdbc.PostgresProfile.api._