2016-05-02 15 views
1

ich eine große Anzahl von Slick-Tabellen mit einer ID Spalte haben, definiert alsBenutzerdefinierte Spaltentyp mit Spaltenoptionen implizierte

def id = column[Int]("ID", O.PrimaryKey, O.AutoInc, O DBType "INT UNSIGNED") 

und ich frage mich, ob es eine Möglichkeit, eine benutzerdefinierte IDPK Art zu schaffen, die würde irgendwie die Verwendung der verschiedenen oben genannten Optionen "implizieren", z

case class IDPK(id: Int) extends AnyVal 

def id = column[IDPK]("ID") 
    // O.PrimaryKey, O.AutoInc, O DBType "INT UNSIGNED" are all implied 

Ich weiß, ich könnte eine Komfortfunktion entlang der Linien von def makeIDPK = column[Int]("ID", .....) machen, aber meine Frage ist, ob oder ob nicht eine Art bestimmte Spaltenoptionen implizieren, gemacht werden kann.

Ich habe festgestellt, dass, wenn ich show create table <tablename> ausführen, gibt es Optionen, die ich nicht explizit angeben, z. NOT NULL für Nicht-Option-Spalten oder DEFAULT NULL für Option-Spalten. Aus diesem Grund hoffe ich auf eine "Ja" -Antwort, aber ich konnte so etwas nicht finden, während ich durch die Slick-Dokumentation blicke.

+0

'show create table' wird hier irreführend sein, da die meisten Datenbanken Standardeinstellungen für alle ihre Einstellungen haben, und fügen sie hinzu, auch wenn Slick nicht. – jkinkead

Antwort

-1

können Sie eine Funktion definieren, die den Typ empfängt und eine Spalte erstellt. Etwas wie:

+1

Wie ist das nicht genau das, was das OP sagt, dass sie _not_ nicht verlangen? –

Verwandte Themen