Sicher können Sie - das ist die Frage der benutzerdefinierten Zuordnung. Hier ist, wie es aussieht, wenn Sie möchten, String
in db speichern:
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
)
Dann definieren Sie Ihre Spalte wie folgt (das ist eigentlich Ihr Code):
def seg = column[Option[Segment]]("segment")
Sie können oben verwenden dann sowohl in Ergebnisse und Anfragen z dies wie:
MyTable
.filter(_.segment === Segment(Some(true), None, None)
.result
daran müssen Sie halten einfach diese implizite (segmentColumnType
) an Orten im Umfang haben, wenn Sie dieses Gespräch (Spaltendefinition, Abfragen usw.) verwenden.