7

我在这里处理了 23 个字段,最后数。在使用外键从 31 字段表中减少后,我通常会举手尝试计算它们。

所有好的链接

关于如何阅读和理解 Slick 模式代码的基本解释,由一位非常优秀的 Faiz 提供。

超过 22 个参数...

Stefan Zeigar 在他在本次讨论中编写的示例代码中提供了极大的帮助,并且在 Github 上也更直接地链接到这里

优秀的 Stefan Zeigar 也在这里发布了关于普通 SQL 查询的文章

这篇文章是关于什么的

我认为以上内容足以让我着手对我的应用程序进行工作重构,以便 CRUD 是可行的。如果出现问题并让我停滞不前,我会更新此问题或提出新问题。事情是...

我想念使用 for 理解进行查询。我说的是Slick 的查询模板

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

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/??? */
}

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

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

def someQueryTemplate = for {
    m <- Monsters
} yield m

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

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


有什么方法可以在 Slick 中使用超过 22 列的查询模板?

4

1 回答 1

2

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

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

另一种选择是使用即将发布的 Slick 版本,它使用 HLists 来消除列数限制。这个版本的 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

于 2013-10-07T14:46:02.523 回答