scala - <> 运算符在 Slick 中起什么作用?

标签 scala slick

我正在走过 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 (<> 的右侧)。

要使案例类的转换起作用,需要两种方法:

Rown-tuplecase class .

scala> User.tupled
res6: ((Option[Int], String, String)) => User = <function1>

所以这个函数可以创建一个User当给定三元组 (Option[Int], String, String) 时作为一个论点。

case classn-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/

相关文章:

mysql - Scala Slick : Insert fails with RejectedExecutionException

Scala+Slick - 获取 GroupBy 结果的计数

postgresql - Slick and bonecp : org. postgresql.util.PSQLException : FATAL: sorry, 太多客户端已经错误

scala - 光滑 3 : How to construct dynamic filter with optional column?

scala - 在Slick 3.0中,为什么新引入的 `Streaming`有用?

Scala 相当于 .NET 的 Task.Factory.StartNew?

java - 在 Scala 或 Java 中使用 Excel 语法格式化数字

scala - 从 native Javascript 处理程序调用 Scala.js 代码

scala - 如何在Scala中打印出列表的类型?

scala - Webbit websocket ws ://connection works but wss://handshake fails silently without any error?