问题标签 [slick-codegen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - sbt 插件动态加载用户定义的代码?
我正在开发一个 sbt 插件,它使用Slick 代码生成器在给定数据库的情况下生成 Scala 模型
我当然希望用户覆盖代码生成器,所以我的插件需要支持这一点:
无论如何,我可以在 build.sbt 插件键中动态加载给定路径的 Scala 类?例如,在用户的父 build.sbt 中,她会提供类似这样
codegen.override=com.company.project.CustomCodegenerator
的内容与上述有关;自定义代码生成器可能会使用其他一些库,因此简单的动态类加载可能不够。无论如何,一个 sbt 插件可以使用该插件继承项目的依赖项吗?
以下是关于此的完整讨论:https ://github.com/papauschek/play-slick-evolutions-plugin/issues/1
scala - 如何禁止 slick codegen 在每次编译时创建 dbModels?
我尝试在 Build.scala 中的每个编译上注释自动代码生成,如下所示,但随后我的代码显示错误,因为它无法从以前的编译中引用任何自动生成表模型。
scala - 自定义 Slick Codegen 在“${container} 特征”之外生成映射案例类?
Slick Codegen 是否可以在 之外生成所有映射的案例类${container} trait
,以便它们不继承其类型?也许完全在另一个文件中,即Models.scala
?
我得到这个编译错误:
使用Tables#SuppliersRow
import 给出了同样的错误。
SuppliersRow
如果我在自动生成的外部手动剪切和粘贴案例类,trait Tables
它就可以工作!
scala - 代码生成后的Scala Slick 3.1.0 StackOverflow错误
我已经开始使用推荐使用的 Slick 框架和代码生成器。我的问题是,在为超过 22 列的表生成代码后(我知道限制,但代码生成器让我很容易克服它),我无法再编译项目了。我收到此错误:
在 Slick 3.1.0 的实际版本中,我搜索了整个互联网并没有找到解决此错误的方法。
mysql - scala codegen 无法处理 datetime not null 默认值'0000-00-00 00:00:00'?
我想使用最新的 Slick (3.1.1) 分析旧的 mysql 数据库(myisam 引擎)。
但是,在该数据库上运行 slick.codegen.SourceCodeGenerator 会导致错误:
相关表(DDL 代码)如下所示:
什么地方出了错?怎么修?
scala - 光滑的代码生成和超过 22 列的表格
我是 Slick 的新手。我正在使用 Scala、ScalaTest 和 Slick 为 Java 应用程序创建一个测试套件。我正在使用 slick 在测试前准备数据并在测试后对数据进行断言。使用的数据库有一些超过 22 列的表。我使用slick-codegen来生成我的模式代码。
对于超过 22 列的表,slick-codegen 不会生成案例类,而是生成基于 HList 的自定义类型和伴随的“构造函数”方法。据我了解,这是因为元组和案例类只能有 22 个字段的限制。生成代码的方式,Row-object 的字段只能通过索引访问。
我对此有几个问题:
- 据我了解,案例类的 22 个字段限制已经在 Scala 2.11 中修复,对吧?
- 如果是这种情况,是否可以自定义 slick-codegen 为所有表生成案例类?我调查了这个:我设法设置
override def hlistEnabled = false
了一个被覆盖的SourceCodeGenerator
. 但这导致Cannot generate tuple for > 22 columns, please set hlistEnable=true or override compound.
所以我不明白能够禁用 HList 的意义。可能是在“或覆盖复合”部分,但我不明白这意味着什么。 - 在 slick 和 22 列上搜索互联网,我遇到了一些基于嵌套元组的解决方案。是否可以自定义代码生成以使用这种方法?
- 如果生成具有> 22个字段的案例类的代码不是一个可行的选择,我认为可以生成一个普通的类,它对每一列都有一个“访问器”功能,从而从基于索引的访问中提供一个“映射”到基于名称的访问。我很乐意自己实现这一代,但我认为我需要一些指示从哪里开始。我认为它应该能够为此覆盖标准代码生成。
SourceCodeGenerator
我已经为某些自定义数据类型使用了覆盖。但是除了这个用例之外,代码生成器的文档对我帮助不大。
我真的很感激这里的一些帮助。提前致谢!
oracle - 使用 Slick Codegen 3.1.1 为多个模式生成代码
我需要为不属于我但对它们具有选择权限的模式中存在的表生成 Slick 自定义代码。我正在使用的代码是:
}
build.sbt 包含以下有关 Slick 和 Oracle 驱动程序的详细信息:
当表驻留在用户模式(用户)中时,CustomCodeGenerator 成功生成 Slick 代码,但当表驻留在其他模式中(如上面的 GEO)时不会成功生成 Slick 代码。当表驻留在不同的模式中时,有人可以建议我如何获得为 Oracle 表生成的流畅代码吗?在此先感谢您的帮助。
scala - Scala Slick codegen 自定义命名
我正在使用 slick codegen 为 myMySql db 生成表定义。如何覆盖 slick 的 codegen 命名约定?它为表查询对象生成以下代码:
我希望它看起来像这样:
PS我看过这个例子:https ://github.com/slick/slick-codegen-customization-example ,但我想知道是否有更简单的方法来实现这个?
scala - 如何将自动生成的光滑代码添加到类路径
我使用此处描述的方法生成了源代码
https://github.com/slick/slick-codegen-example/blob/master/build.sbt
此方法有效,现在当我这样做时,compile
我可以看到自动生成的 Target.scala 文件已成功编译为 Tables.class
但在我的源代码中,如果我尝试导入自动生成的类文件。它说cannot resolve symbol demo