Ich bin sowohl Scala als auch Slick sehr neu und versuche es zu lernen. Ich schreibe eine kleine Anwendung, die mit einer einfachen Datenbank arbeitet.Scala Slick und komplexe Typen in meiner Datenbank
Die meisten meiner bisherigen Erfahrung kommt von .Net und der Entity Framework, also ich frage mich, ob wie in Entity Framework mit dem ComplexType
Attribut, wenn Slick würde mir erlauben, das gleiche zu tun.
Grundsätzlich ist eine meiner Tabellen eine Beziehung 1-1 und für einige von ihnen würde ich lieber ein Objekt erstellen und es als einen komplexen Typ verwenden. Offensichtlich sind das in der Datenbank nur zusätzliche Spalten in der Tabelle, aber ich habe mich gefragt, ob Slick diese Spalten auf ein Objekt in meiner Klasse Table
abbilden könnte. Siehe Beispiel unten.
Ich werde ein Blog-Eintrag Beispiel verwenden.
Meine Hauptklasse, die Tabelle erweitert, ist BlogEntry
und es enthält den Text des Eintrags. Dann sage ich, dass ich in dieser Klasse eine andere Klasse namens EntryDetails
wollte, die die Zeit, zu der der Eintrag gepostet wurde, und die Zeit, zu der er zuletzt aktualisiert wurde, enthielt.
In der Datenbank befinden sich alle diese Felder in der gleichen Tabelle, aber beim Einlesen wird es ein Objekt sein, das das andere Objekt enthält. Ist das mit Slick möglich?
Ja, das ist möglich. Sie müssen dazu einen benutzerdefinierten 'TypeMapper' implementieren (http://slick.typesafe.com/doc/1.0.1/lifted-embedding.html#user-defined-functions-and-types). (Ich werde später eine echte Antwort schreiben.) – Carsten
Awesome vielen Dank. Ja, wenn du es tust, werde ich es als Antwort akzeptieren. Vielen Dank für die schnelle Antwort. – twreid
Haben Sie Ihr Problem mit TypeMapper gelöst? Brauchen Sie noch eine Probe, wie es geht? – dirceusemighini