编译表定义时出现光滑错误:无法找到参数tm的隐含值

时间:2015-03-27 14:28:17

标签: scala slick-2.0

我对Slick来说是全新的。我试图创建一个基本的表类型,但它只是不编译。这是我的代码:

import scala.slick.driver.PostgresDriver._
import scala.slick.lifted.Tag
import scala.slick.lifted.Column
import scala.slick.lifted.ProvenShape

class Documents(tag: Tag) extends Table[(Long, String, String)](tag, "DOCUMENTS") {
       def id: Column[Long] = column[Long]("ID", O.PrimaryKey)
       def `type`: Column[String] = column[String]("TYPE")
       def data: Column[String] = column[String]("DATA")

       def * : ProvenShape[(Long, String, String)] = (id, `type`, data)
}

我得到了这些错误:

<console>:13: error: could not find implicit value for parameter tm: scala.slick.ast.TypedType[Long]
              def id: Column[Long] = column[Long]("ID", O.PrimaryKey)
                                           ^
<console>:14: error: could not find implicit value for parameter tm: scala.slick.ast.TypedType[String]
              def `type`: Column[String] = column[String]("TYPE")
                                                   ^
<console>:15: error: could not find implicit value for parameter tm: scala.slick.ast.TypedType[String]
              def data: Column[String] = column[String]("DATA")
                                                 ^

2 个答案:

答案 0 :(得分:9)

Slick 2

好的,我在写这个问题时解决了这个问题。 使用

import scala.slick.driver.PostgresDriver.simple._

而不是

import scala.slick.driver.PostgresDriver._


更新:感谢@lost_trekkie

Slick 3 使用:

import slick.driver.PostgresDriver.api._


更新:感谢Dmytro Mitin

Slick 3.2 slick.driver.PostgresDriver已弃用,应改为使用slick.jdbc.PostgresProfile

import slick.jdbc.PostgresProfile.api._

答案 1 :(得分:4)

仅供参考,使用Slick 3,上面提到的导入应该是

 import slick.driver.PostgresDriver.api._