2016-12-07 4 views
1

Я использую slick codegen для генерации определений таблиц для myMySql db. Как я могу переопределить соглашения о присвоении имен в кодеке? Он генерирует следующий код для объектов запроса таблицы:Scala Slick codegen custom naming

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

Я хочу, чтобы это выглядело, как это вместо:

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

P.S. Я видел этот пример: https://github.com/slick/slick-codegen-customization-example, но мне интересно, есть ли более простой способ достичь этого?

+0

Вам нужно будет переопределить '' tableName' из slick.codegen.AbstractGenerator'. – Roman

+0

Здравствуйте. Я новичок в этой технологии, поэтому я хотел бы получить более практичные советы. Можно ли это сделать так, как в этом примере - https://github.com/slick/slick-codegen-customization-example, или есть более простые и простые способы, например, переопределить его в конфиге, в build.sbt "gen-tables" taks? –

ответ

1

Нет «более простого» способа. По крайней мере, я не знаю об этом. Но вы можете найти этот плагин sbt полезным: sbt-slick-codegen. в build.sbt Ваш slickCodegenCodeGenerator будет выглядеть так, то (непроверенные):

slickCodegenCodeGenerator := { (model: m.Model) => 
    new SourceCodeGenerator(model) { 
    override def tableName = (dbName: String) => "slick" + dbName.capitalize 
    } 
} 
Смежные вопросы