既然22不再是限制,Scala案例类中允许的实际最大字段数是多少?

既然22不再是限制,Scala案例类中允许的实际最大字段数是多少?,scala,quill.io,Scala,Quill.io,我有一个项目正在生成编译时堆栈溢出错误 我使用Quill实现持久性,它使用宏。我有一个case类,它包含600多个字段,表示一个数据库表 在编译期间,我得到以下无限递归: scala:27:更新电子邮件\用户设置密码\哈希=?用户id在哪里 = ? [info]。运行(引号{[info]^java.lang.StackOverflowerError位于 scala.tools.nsc.transform.Erasure$橡皮擦.AdapterMember(Erasure.scala:686) 位

我有一个项目正在生成编译时堆栈溢出错误

我使用Quill实现持久性,它使用宏。我有一个case类,它包含600多个字段,表示一个数据库表

在编译期间,我得到以下无限递归:

scala:27:更新电子邮件\用户设置密码\哈希=?用户id在哪里 = ? [info]。运行(引号{[info]^java.lang.StackOverflowerError位于 scala.tools.nsc.transform.Erasure$橡皮擦.AdapterMember(Erasure.scala:686) 位于scala.tools.nsc.transform.Erasure$橡皮擦.typed1(Erasure.scala:773) 在 scala.tools.nsc.typechecker.Typers$Typer.runtyper1(Typers.scala:5584) 在 scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5616) 在scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5557) 在scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5562) 在 scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typed1$38(Typers.scala:4708) 位于scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:698) 在 scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4710) 在 scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4757) 在 scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5530) 位于scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5547) 位于scala.tools.nsc.transform.Erasure$橡皮擦.typed1(Erasure.scala:773) 在 scala.tools.nsc.typechecker.Typers$Typer.runtyper1(Typers.scala:5584)

尽管22个字段的案例字段数量限制已经取消,但我是否遇到了一些实际限制

如果我没有使用Quill访问相关的表/大型case类,则会发生此编译错误


感谢您提供的任何见解!

如果您想称之为实际限制,您将遇到正在编译的JVM的最大堆栈大小。
如果要编译嵌套异常深或使用异常大的大小写类的代码,则必须增加JVM的堆栈大小被认为是正常的。通过将参数
-Xss6m
传递给JVM,可以将最大堆栈大小设置为6MB。您可以尝试增加该数字,直到它工作为止。

您遇到了问题若您想称之为实际限制,那个么您正在编译的JVM的最大堆栈大小。 如果要编译嵌套异常深或使用异常大的大小写类的代码,则必须增加JVM的堆栈大小被认为是正常的。通过将参数
-Xss6m
传递给JVM,可以将最大堆栈大小设置为6MB。您可以尝试增加该数字,直到它工作为止