Mein Problem ist einfach.
Ich habe eine Spalte seqNum: Double
, die wie folgt NOT NULL DEFAULT 1
in CREATE TABLE
ist:
Benutzer kann einen Wert für seqNum
oder nicht von UI eingeben. Also ist die akzeptierende PLAY
Form wie folgt:
Das Slick Table Schema & amp; Objekte sehen so aus:
%Vor% Wenn ich seqNum
von der UI sende, funktioniert alles einwandfrei, aber wenn None
da ist, bricht es ab, dass NULL nicht in die NOT NULL-Spalte einfügen kann , was korrekt ist. Diese Frage erklärt warum.
Aber wie löst man dieses Problem mit slick
? Ich kann nicht verstehen, wo ich über None
nachsehen soll. Ich erstelle & amp; Senden eines Objekts von SomeSection
an insert
Methode von SomeSections
Object.
Ich benutze sql-server, wenn es darauf ankommt.
Die Verwendung des Standardwerts erfordert, dass der Wert überhaupt nicht eingefügt wird, statt NULL einzufügen. Das bedeutet, dass Sie eine benutzerdefinierte Projektion zum Einfügen benötigen.
people.map(_.name).insert("Chris")
verwendet Standardwerte für alle anderen Felder. Die Einschränkungen der systemeigenen Tupel-Transformationen und Fall-Klassen-Transformationen von scala können dies ein wenig mühsam machen. Dinge wie Slicks HLists, Shapeless, Scala Records oder Scala XR können helfen, sind aber im Moment nicht trivial oder sehr experimentell.