Scala Slick 3.0.0奇怪的错误

时间:2015-05-21 03:09:02

标签: scala slick

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

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

2 个答案:

答案 0 :(得分:6)

sparkr发布的答案对我有用。

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

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

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._

答案 1 :(得分:2)

好吧,我发现了问题所在。这是我的问题的完整源代码。

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

正如您在我的测试中看到的那样,我在导入中使用H2Driver并在实际服务类中使用JdbcProfile导入,这导致了问题。我所要做的只是我的测试课程中的以下内容:

Dim sMatch As Boolean
sMatch = TextBox1.Text Like "[0-9]/[0-9]"

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