【问题标题】:Lightbend examples syntax errorLightbend 示例语法错误
【发布时间】: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


【解决方案1】:

如果将来有人遇到这个问题 - 在这个例子中,EmployeeTable 是用 private[EmployeeTable] 定义的,这使得在 EmployeeRepository 类中不可见。只需跳过类定义中的private[EmployeeTable] 部分即可使一切顺利进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 2014-04-12
    • 2015-03-05
    • 2011-12-28
    相关资源
    最近更新 更多