не могу найти результат метода в TableQuery с помощью 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

Ошибка:

"Не удается разрешить результат символа"

Читая документы, я действительно не понимаю, почему это должно потерпеть неудачу. . Я что-то упустил здесь?

Разрешение

szeiger указал, что это может быть ошибка в «компиляторе презентаций IntelliJ», и это было верно.


person brujoand    schedule 22.02.2015    source источник
comment
Что здесь означает компиляция? В компиляторе презентаций IntelliJ есть известная ошибка, из-за которой он не может найти метод. Фактический компилятор Scala должен быть в состоянии скомпилировать его.   -  person szeiger    schedule 23.02.2015
comment
Вы правы в деньгах. Я никогда не удосужился скомпилировать с помощью sbt, так как IDEA выдала мне ошибку. Спасибо!   -  person brujoand    schedule 23.02.2015
comment
Жаль, что IntelliJ этого не понимает. Все портит при использовании для большого проекта, где IDE обязательна. В этом и есть смысл - получить проверку времени компиляции и автодополнения.   -  person kornfridge    schedule 27.03.2015
comment
Ничего в github.com/ slick/slick/blob/master/slick/src/main/scala/slick/ предполагает, что этот метод существует. Это как-то реализовано с помощью макросов? (простите мое невежество, если это не имеет смысла, я не разбираюсь в макросах)   -  person Bogdan    schedule 31.03.2015
comment
Для справки, я считаю, что ссылка на выпуск на веб-сайте Jetbrains: youtrack.jetbrains.com/ проблема/SCL-8079   -  person Bogdan    schedule 31.03.2015
comment
Примечание для людей, столкнувшихся с тем же неразрешенным результатом симптома: вы могли (как и я) забыть импортировать API   -  person anmorand    schedule 26.10.2015
comment
Для меня импорт slick.driver.MySQLDriver.api._ решил проблему.   -  person Everton Mendonça    schedule 13.11.2015


Ответы (4)


Я столкнулся с той же проблемой, и вот что я сделал, чтобы избавиться от нее:

  1. Обновлен IntelliJ до версии 14.1.3.
  2. Используемый плагин Scala версии 1.5

Моя версия scala 2.11.6.

Я надеюсь, что это поможет кому-то, кто может столкнуться с той же проблемой!

person joesan    schedule 20.05.2015
comment
Обновление до последней версии плагина JetBrain Scala Plugin версии 1.5.2 исправило это для меня. - person ObjectiveTruth; 03.07.2015

Если кто-то столкнулся с похожей проблемой:

нет метода результата в TableQuery

ДВАЖДЫ проверьте, есть ли у вас import slick.jdbc.PostgresProfile.api._

person kosiara - Bartosz Kosarzycki    schedule 27.12.2017
comment
Спасибо. Оно работает !!! - person Massimo Da Ros; 26.04.2021

Это обычная проблема, с которой я довольно часто сталкивался в IntelliJ IDEA.

При использовании активатора мне помогла команда "идея активатора".

Он заново создал файлы .idea и IdeaProject.iml, а затем повторно загрузил проект. Я сейчас использую активатор-1.3.4

person Bhavya Latha Bandaru    schedule 09.06.2015

Вы можете попробовать

val result = db.withSession(implicit session => issueQuery.list)
person Arseniy Zhizhelev    schedule 22.02.2015