我只是想让“用户”示例正常工作(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
添加到Users
类Table
:
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
我做错了什么?为什么文档不清楚?
答案 0 :(得分:1)
代码导入slick.jdbc.MySQLProfile.Table
,但它需要引入整个api:
import slick.jdbc.MySQLProfile.api._
这将为您提供您正在寻找的隐含,代码应该编译。
很快,编译了Slick手册示例。这意味着您可以访问代码以查看是否有您需要的额外详细信息。
例如,对于您链接到的页面,如果您滚动到顶部,则会在github&#34;上编辑此页面。链接。点击它会转到the source并在那里找到对Scala源的引用:
.. includecode:: code/LiftedEmbedding.scala#mappedtable
...该文件也在GitHub中:LiftedEmbedding.scala
有点啰嗦,但有时候知道这些例子是有用的,你可以找到它们。
这种情况的细节即将改变为不同的系统,但原则应该保持不变。上面的细节(文件名,导入语法)将有所不同。