【问题标题】:Scala Slick codegen custom namingScala Slick codegen 自定义命名
【发布时间】:2017-04-22 20:57:01
【问题描述】:

我正在使用 slick codegen 为 myMySql db 生成表定义。如何覆盖 slick 的 codegen 命名约定?它为表查询对象生成以下代码:

lazy val User = new TableQuery(tag => new User(tag))

我希望它看起来像这样:

lazy val slickUser = new TableQuery(tag => new User(tag))

附:我看过这个例子:https://github.com/slick/slick-codegen-customization-example,但我想知道是否有更简单的方法来实现这个?

【问题讨论】:

  • 您需要覆盖tableName of slick.codegen.AbstractGenerator
  • 你好。我是这项技术的新手,所以我希望能得到更多实用的建议。只能按照本例中的方式完成 - github.com/slick/slick-codegen-customization-example,还是有更直接和简单的方法,比如在 build.sbt "gen-tables" taks 中的配置中覆盖它?

标签: scala slick slick-codegen


【解决方案1】:

没有“更简单”的方法。至少我不知道一个。但是你可能会发现这个 sbt 插件很有用:sbt-slick-codegen。你在build.sbt 中的slickCodegenCodeGenerator 看起来像这样(未经测试):

slickCodegenCodeGenerator := { (model:  m.Model) =>
  new SourceCodeGenerator(model) {
    override def tableName = (dbName: String) => "slick" + dbName.capitalize
  }
}

【讨论】:

    猜你喜欢
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多