Я новичок в обоих Scala и Slick и пытается узнать его, я пишу небольшое приложение, которое работает с простой базой данных.Scala Slick и сложные типы в моей базе данных
Основная часть моего предыдущего опыта связана с .Net и Entity Framework, поэтому мне было интересно, нравится ли в Entity Framework атрибут ComplexType
, если Slick позволит мне сделать то же самое.
В основном одна из моих таблиц 1-1 отношений и для некоторых из них я предпочел бы просто создать объект и использовать его в качестве сложного типа. Очевидно, что в базе данных это дополнительные столбцы таблицы, но мне было интересно, сможет ли Slick сопоставить эти столбцы с объектом в моем классе Table
. См. Пример ниже.
Я буду использовать пример записи в блоге.
Мой главный класс, который расширяет таблицу является BlogEntry
и содержит текст записи. Тогда скажите, что я хотел в этом классе еще один класс, называемый EntryDetails
, который содержал время публикации записи и время последнего обновления.
В базе данных все эти поля будут находиться в одной и той же таблицы, но при чтении в нем будет один объект, содержащий другой объект. Возможно ли это с Slick?
Да, это возможно. Для этого вам необходимо [реализовать пользовательский 'TypeMapper'] (http://slick.typesafe.com/doc/1.0.1/lifted-embedding.html#user-defined-functions-and-types). (Я напишу реальный ответ позже.) – Carsten
Удивительное спасибо. Да, когда вы это сделаете, я приму это как ответ. Большое спасибо за быстрый ответ. – twreid
Вы решили свою проблему с помощью TypeMapper? Вам все еще нужен образец того, как это сделать? – dirceusemighini