【问题标题】:Scala Slick 3.1.0 StackOverflow error after code generation代码生成后的Scala Slick 3.1.0 StackOverflow错误
【发布时间】:2016-03-15 04:56:01
【问题描述】:

我已经开始使用推荐使用的 Slick 框架和代码生成器。 我的问题是,在我为超过 22 列的表生成代码后(我知道限制,但代码生成器让我很容易克服它),我无法再编译项目了。我收到此错误:

Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException
java.lang.StackOverflowError
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

在 Slick 3.1.0 的实际版本中,我已经搜索了整个互联网并没有提出解决此错误的方法。

【问题讨论】:

  • 这看起来像是编译器中的错误并涉及 IDEA。尝试使用 sbt 在终端中编译。
  • 试过了,也没有用:(

标签: scala slick slick-codegen


【解决方案1】:

这与元组中 22 个“事物”的 Scala 限制有关。在here 上有更多关于它的信息,说明为什么会这样。

不过,数据库表中的 22 列相当多,所以我建议是否可以将其拆分为多个连接表,这样可以解决这个问题。

或者确实等到 Typesafe 在未来版本的 Scala 中修复该问题。如果真的发生了。

【讨论】:

  • 但在他们的tutorial 中,他们支持一个元组中的值超过 22 个。
【解决方案2】:

slick / shapeless“slickless”库允许您使用 slick 并通过硬 22 列(案例类引起的)限制:

https://underscore.io/blog/posts/2015/08/08/slickless.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    相关资源
    最近更新 更多