【问题标题】:Value sql is not a member of StringContext值 sql 不是 StringContext 的成员
【发布时间】:2019-11-20 21:56:34
【问题描述】:

为什么,Scala 会返回以下代码 value sql is not a member of StringContext

我正在使用带有 Play 框架的 Slick。

val db = Database.forConfig("db")
val query = sql"""select ID from TEACHER""".as[String] 
val people = db.withSession{ implicit session =>
Ok(query.list)

【问题讨论】:

  • 你使用的是哪个库?
  • 我不了解 slick,但我遇到了同样的异常问题。我使用import anorm.SqlStringInterpolation 导入插值。

标签: scala slick


【解决方案1】:

您可以使用库 com.typesafe.play:play-slick_2.11:2.0.0 中的导入 import driver.api._。这应该有效:

import driver.api._

val db = Database.forConfig("db")
val query = sql"""select ID from TEACHER""".as[String] 
val people = db.withSession{ implicit session =>
Ok(query.list)

【讨论】:

  • 我没有使用 play,它是一个批处理。那边怎么解决?
  • 在这种情况下,您可以使用库 com.typesafe.slick:slick_2.11:3.1.1 中的导入 import slick.driver.H2Driver.api._。您可以查看文档there
【解决方案2】:

正如“code4j”在上面的评论中提到的(但值得单独回答),我使用以下内容:

import anorm.SqlStringInterpolation

注意:这适用于 Anorm,独立于 Slick。

【讨论】:

    【解决方案3】:

    试试这个:

    import Q.interpolation
    
    val db = Database.forConfig("db")
    val query = sql"""select ID from TEACHER""".as[String] 
    val people = db.withSession{ implicit session =>
    Ok(query.list)
    

    【讨论】:

    • 我需要什么依赖?
    猜你喜欢
    • 2017-10-27
    • 2015-08-07
    • 2016-03-05
    • 2017-11-19
    • 2020-07-17
    • 2017-01-05
    • 2013-10-17
    • 2016-02-15
    • 1970-01-01
    相关资源
    最近更新 更多