Уверенный, вы можете - это вопрос пользовательского сопоставления. Вот как это выглядит, если вы хотите хранить String
в БД:
implicit val segmentColumnType = MappedColumnType.base[Segment, String](
segment => ???, // logic here to convert Segment to JSON string
string => ??? // logic here to convert JSON string to Segment case class
)
Затем вы определяете свой столбец следующим образом (что на самом деле ваш код):
def seg = column[Option[Segment]]("segment")
Вы можете использовать выше, то и в результаты и запросы, например как это:
MyTable
.filter(_.segment === Segment(Some(true), None, None)
.result
Просто имейте в виду, вы должны иметь это неявное (segmentColumnType
) в области видимости в местах, когда вы используете этот разговор (определение столбца, запросы и т.д.).