无法制作光滑的3.2映射表示例工作

时间:2017-03-21 17:52:27

标签: scala slick slick-3.0

我只是想让“用户”示例正常工作(http://slick.lightbend.com/doc/3.2.0/schemas.html#mapped-tables),但它无法编译。

由于我的目标是MySQL,我添加了以下导入:

import slick.jdbc.MySQLProfile.Table
import slick.jdbc._
import slick.lifted._

那也没编译,我收到了很多错误,比如

Error:(16, 23) could not find implicit value for parameter tt: slick.ast.TypedType[Int]
  def id = column[Int]("id", O.PrimaryKey, O.AutoInc)

在查找了隐含内容之后,我将with MySQLProfile.ImplicitColumnTypes添加到UsersTable

class Users(tag: Tag) extends Table[User](tag, "users") with MySQLProfile.ImplicitColumnTypes

现在我坚持

Error:(19, 15) value ? is not a member of slick.lifted.Rep[Int]
  def * = (id.?, first, last) <> (User.tupled, User.unapply _)

<>也找不到。

您可能会注意到文档中所述的User.unapply _而不是User.unapply;但是编译器正在抱怨User.unapply

我做错了什么?为什么文档不清楚?

1 个答案:

答案 0 :(得分:1)

代码导入slick.jdbc.MySQLProfile.Table,但它需要引入整个api:

import slick.jdbc.MySQLProfile.api._

这将为您提供您正在寻找的隐含,代码应该编译。

:Slick示例已编译

很快,编译了Slick手册示例。这意味着您可以访问代码以查看是否有您需要的额外详细信息。

例如,对于您链接到的页面,如果您滚动到顶部,则会在github&#34;上编辑此页面。链接。点击它会转到the source并在那里找到对Scala源的引用:

.. includecode:: code/LiftedEmbedding.scala#mappedtable

...该文件也在GitHub中:LiftedEmbedding.scala

有点啰嗦,但有时候知道这些例子是有用的,你可以找到它们。

这种情况的细节即将改变为不同的系统,但原则应该保持不变。上面的细节(文件名,导入语法)将有所不同。