【问题标题】:Scala Slick 3.0.0 Strange ErrorScala Slick 3.0.0 奇怪的错误
【发布时间】:2015-05-21 03:09:01
【问题描述】:

我在尝试为不同的环境使用不同的驱动程序时遇到了一些问题:

Error:(44, 39) value schema is not a member of slick.lifted.TableQuery[MyserviceTests.this.myService.MyTable]
      myTableQuery.schema.create,

我按照本教程实际实现了一个多数据库通信层:

http://www.typesafe.com/activator/template/slick-multidb

如何解决这个问题?我正在使用 Slick 3.0.0

【问题讨论】:

标签: scala slick


【解决方案1】:

sparkr 发布的答案对我有用。

驱动程序api._ import 导致正确的隐式转换包含在范围内。

因此,如果您可以使用静态驱动程序绑定,那么这样的导入就可以解决问题:

import slick.driver.H2Driver.api._

如果您需要代码与多个驱动程序一起使用,您可以动态导入

import scala.reflect.runtime.universe
val rtm = universe.runtimeMirror(getClass.getClassLoader)
val obj = rtm.reflectModule(rtm.staticModule("slick.driver.H2Driver"))

val driver = obj.instance.asInstanceOf[slick.driver.JdbcDriver]
import driver.api._

【讨论】:

    【解决方案2】:

    好的,我找到了问题所在。这是我的问题的完整源代码。

    https://groups.google.com/forum/#!topic/scalaquery/FgRuPhyuGpc

    正如您在我的测试中看到的,我在导入中使用 H2Driver 并在实际服务类中使用 JdbcProfile 导入,这导致了问题。我所要做的就是在我的测试类中进行以下操作:

        //import slick.driver.H2Driver.api._
    
        val db = Database.forURL("jdbc:h2:mem:assetConfigDb;DATABASE_TO_UPPER=false;DB_CLOSE_DELAY=-1", driver="org.h2.Driver")
        val myService = MyService.apply(DBConfig(db, driver = slick.driver.H2Driver))
    
        import myService.driverProfile.api._
    

    注意导入,因为这非常重要!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      相关资源
      最近更新 更多