我正在走过 documentation of Slick设置快速工作原型(prototype)。
在“映射表”部分中,我看到 <>
提到的示例中的运算符,但在任何地方都找不到任何文档。需要帮助来理解这一点。
最佳答案
<>
运算符定义 Row
之间的关系在 Table
和一个 case class
.
case class User(id: Option[Int], first: String, last: String)
ROW |id | first | last |
因此,数据首先从表格中取出 n-tuple
( <>
的左侧),然后转换为 case class
(<>
的右侧)。
要使案例类的转换起作用,需要两种方法:
Row
至n-tuple
至case class
.
scala> User.tupled
res6: ((Option[Int], String, String)) => User = <function1>
所以这个函数可以创建一个User
当给定三元组 (Option[Int], String, String)
时作为一个论点。
case class
至n-tuple
写入数据库。
scala> User.unapply _
res7: User => Option[(Option[Int], String, String)] = <function1>
此函数提供了相反的功能。给定一个用户,它可以提取一个三元组。这种模式称为 Extractor
。您可以在这里了解更多信息:http://www.scala-lang.org/old/node/112
关于scala - <> 运算符在 Slick 中起什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35840626/