无法使 slick 3.2 Mapped table 示例正常工作
Cannot make slick 3.2 Mapped table example working
我只是想让 "User" 示例正常工作 (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
class 扩展 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
我做错了什么?为什么文档这么不清楚?
代码导入 slick.jdbc.MySQLProfile.Table
但它需要引入整个 api:
import slick.jdbc.MySQLProfile.api._
这将为您提供您正在寻找的暗示,代码应该可以编译。
顺便说一句:Slick 示例已编译
顺便编译了Slick手册的例子。这意味着您可以查看代码以查看是否有您需要的额外详细信息。
例如,对于您 link 进入的页面,如果您滚动到顶部,则会出现 "Edit this page on github" link。单击它会将您带到 the source,您会在其中找到对 Scala 源代码的引用:
.. includecode:: code/LiftedEmbedding.scala#mappedtable
...并且该文件也在 GitHub 中:LiftedEmbedding.scala
有点啰嗦,但有时知道示例已编译并且您可以找到它们很有用。
关于如何发生的细节即将更改为不同的系统,但原则应该保持不变。上面的详细信息(文件名、导入语法)会有所不同。
我只是想让 "User" 示例正常工作 (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
class 扩展 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
我做错了什么?为什么文档这么不清楚?
代码导入 slick.jdbc.MySQLProfile.Table
但它需要引入整个 api:
import slick.jdbc.MySQLProfile.api._
这将为您提供您正在寻找的暗示,代码应该可以编译。
顺便说一句:Slick 示例已编译
顺便编译了Slick手册的例子。这意味着您可以查看代码以查看是否有您需要的额外详细信息。
例如,对于您 link 进入的页面,如果您滚动到顶部,则会出现 "Edit this page on github" link。单击它会将您带到 the source,您会在其中找到对 Scala 源代码的引用:
.. includecode:: code/LiftedEmbedding.scala#mappedtable
...并且该文件也在 GitHub 中:LiftedEmbedding.scala
有点啰嗦,但有时知道示例已编译并且您可以找到它们很有用。
关于如何发生的细节即将更改为不同的系统,但原则应该保持不变。上面的详细信息(文件名、导入语法)会有所不同。