2016-12-07 4 views
1

Ich verwende Slick Codegen, um Tabellen Definitionen für myMySql db zu generieren. Wie kann ich Slicks Codegen-Namenskonventionen überschreiben? Es erzeugt folgenden Code für Tabellenabfrage Objekte:Scala Slick codegen benutzerdefinierte Benennung

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

P. S.:

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

ich es wie folgt statt aussehen wollen Ich habe dieses Beispiel gesehen: https://github.com/slick/slick-codegen-customization-example, aber ich frage mich, ob es einen einfacheren Weg gibt, dies zu erreichen?

+0

Sie außer Kraft setzen müssen 'tableName' von' slick.codegen.AbstractGenerator'. – Roman

+0

Hallo. Ich bin neu in dieser Technologie, daher würde ich mich über praktische Ratschläge freuen. Kann es nur so gemacht werden, wie in diesem Beispiel - https://github.com/slick/slick-codegen-customization-example, oder gibt es einfachere und einfachere Wege, wie das Überschreiben in der Config von in die build.sbt "gen-tables" taks? –

Antwort

1

Es gibt keinen "einfacheren" Weg. Zumindest bin ich mir einer nicht bewusst. Aber Sie können dieses sbt-Plugin nützlich finden: sbt-slick-codegen. Ihre slickCodegenCodeGenerator in build.sbt würde aussehen wie dieses dann (nicht getestet):

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