Jestem bardzo nowy zarówno Scala i Slick i próbując się go nauczyć Piszę małą aplikację, która działa z prostą bazą danych.Scala Slick i złożonych typów w mojej bazie danych
Większość mojego wcześniejszego doświadczenia pochodzi z .Net i Entity Framework, więc zastanawiałem się, czy w Entity Framework z atrybutem ComplexType
, czy Slick pozwoliłby mi zrobić to samo.
Zasadniczo jedną z moich tabel jest relacja 1-1, a dla niektórych z nich wolałbym po prostu utworzyć obiekt i użyć go jako typu złożonego. Oczywiście w bazie danych to tylko dodatkowe kolumny na stole, ale zastanawiałem się, czy Slick mógłby odwzorować te kolumny na obiekt w mojej klasie Table
. Zobacz przykład poniżej.
Będę używał przykładu wpisu blogu.
Moja główna klasa rozszerzająca tabelę to BlogEntry
i zawiera tekst wpisu. Następnie powiedz, że chciałem w tej klasie innej klasy o nazwie EntryDetails
, która zawierała czas opublikowania wpisu i czas jego ostatniej aktualizacji.
W bazie danych wszystkie te pola będą znajdować się w tej samej tabeli, ale gdy zostanie odczytany, będzie to jeden obiekt zawierający inny obiekt. Czy to możliwe dzięki Slick?
Tak, to jest możliwe. Musisz [zaimplementować niestandardowe 'TypeMapper'] (http://slick.typesafe.com/doc/1.0.1/lifted-embedding.html#user-defined-functions-and- typeses) dla tego. (Napiszę później prawdziwą odpowiedź.) – Carsten
Wspaniale, dziękuję bardzo. Tak, kiedy to zrobisz, przyjmuję to jako odpowiedź. Dziękuję bardzo za szybką odpowiedź. – twreid
Czy rozwiązałeś swój problem z TypeMapper? Czy nadal potrzebujesz próbki, jak to zrobić? – dirceusemighini