2017-05-26 3 views
0

Ich benutze Slick 3.2 mit dem Codegen in einer Scala Play App mit Postgres DB. Jede meiner Tabellen hat ein Zeitstempelfeld für create_time mit dem folgenden Typ: TIMESTAMP default (now() at time zone 'utc'). Das Problem, auf das ich stoße, ist, dass Slick das Modellfeld als generiert und dann einen expliziten null für diese Spalte einfügt, wenn createTimestamp None ist. Ich möchte, dass das Verhalten stattdessen den Wert aus der INSERT-Anweisung insgesamt belässt, so dass die DB ihren Standardwert verwendet. Gibt es eine Möglichkeit, das zu tun?Wie kann Slick die DB-Spalteneinstellungen beim Einfügen einhalten?

Antwort

1

Man könnte so etwas wie die folgenden versuchen:

ein Objekt von

class YourModel(id: Option[Long], name: String, someOtherField: String, createdAt: Option[Timestamp]) 

einzufügen, ohne überhaupt eine ID und einen Zeitstempel bereitstellt:

val table = TableQuery[YourModelTable] 

db.run(table.map(t => (t.name, t.someOtherField)) += ("MyName", "MyOtherField")) 
Verwandte Themen