Scala 22param限制试图找到一个变通方法,仍然用于理解而不是Slick中的纯SQL

Mer*_*ith 7 sql database scala tuples slick

我在这里工作了23个字段,最后算了.在使用外键减少31张现场表后,我一般都试图计算它们.

所有的好链接

关于如何阅读和理解Slick的一个非常好的Faiz提供的模式代码的基本解释.

超过22个参数......

Stefan Zeigar对他在本次讨论中编写的示例代码非常有帮助,并且在Github上更直接地链接到这里

好的Stefan Zeigar也在这里发布纯SQL查询

这篇文章是关于什么的

我认为以上内容足以让我开始对我的应用进行重构,以便CRUD可行.如果出现问题我会更新这个问题或者提出新的问题并让我停滞不前.事情是...

我想念用于查询的理解.我在谈论Slick的查询模板

当我使用for comprehension时遇到的问题是表...可能会有

object Monsters extends Table[Int]("monster_table"){
    // lots of column definitions
    def * = id /* for a Table[Int] despite 
        having 21 other columns I'm not describing
        in this projection/ColumnBase/??? */
}
Run Code Online (Sandbox Code Playgroud)

并且*投影不会描述我想在查询中返回的所有内容.

通常简单的理解Slick查询模板看起来像这样:

def someQueryTemplate = for {
    m <- Monsters
} yield m
Run Code Online (Sandbox Code Playgroud)

并且m将是一个Int而不是我想要的整个对象,因为我声明该表是一个Table[Int] 因为我无法构造22个参数的映射投影,因为需要为编译器支持每个类生成所有代码生成元组和任意性

所以...... 简而言之:


有没有办法在Slick中使用22+列的查询模板?

And*_*nes 2

几天前回答类似问题后,我偶然发现了这个问题。这是问题的链接。狡猾的错误:类型 TupleXX 不是 scala 包的成员 (XX > 22)

要回答这里的问题,您可以使用嵌套元组来解决 22 列的限制。当我自己解决问题时,以下帖子非常有帮助。https://groups.google.com/forum/#!msg/scalaquery/qjNW8P7VQJ8/ntqCkz0S4WIJ

另一种选择是使用即将发布的 Slick 版本,它使用 HList 来消除列数限制。这个版本的 Slick 可以从 Github 上的 Slick master 分支拉取。感谢 cvogt 指出了这个选项。https://github.com/slick/slick/blob/master/slick-testkit/src/main/scala/com/typesafe/slick/testkit/tests/MapperTest.scala#L249