【发布时间】:2017-10-27 15:20:04
【问题描述】:
我只是想知道我是否搞砸了,或者只是使用 Scala 不可避免的痛苦。我想测试一下 slick,所以我决定从 Lightbend 运行 activator-play-slick-angularjs 示例。不幸的是,我在使用时遇到语法错误
lazy protected val empTableQuery: TableQuery[EmployeeTable] = TableQuery[EmployeeTable]
以任何可能的方式。在过滤示例中,Scala 插件要求我使用的类型是Any e。 g.
def delete(id: Int): Future[Int] = db.run { empTableQuery.filter(_.id === id).delete }
_.id 部分产生语法错误。我敢打赌,我只是错过了一些东西,因为我无法想象一个开发人员愿意在 2017 年在没有 IDE 语法帮助的情况下工作。
【问题讨论】:
-
应用程序是否在 sbt 中编译?
-
@rogue-one 是的,它可以编译
-
IDE 是否在抱怨这一行。?
lazy protected val empTableQuery: TableQuery[EmployeeTable] = TableQuery[EmployeeTable]如果您的 empTableQuery 被正确分配为TableQuery[EmployeeTable]类型,您将不会遇到此问题。 -
@rogue-one IDE 没有抱怨这一行。它更像是 id 在引用 EmployeeTable 时由于某种奇怪的原因而无法访问
-
@rogue-one 啊哈,感谢朋友的帮助。你说它应该起作用的话让我的大脑更仔细地研究了代码。 EmployeeTable 类是用 private[EmployeeTable] 定义的。这就是我打赌它在 EmployeeRepository 类中不可见的原因。删除私有语句后,IDE 开始正常工作。
标签: scala intellij-idea slick