2015-10-01 2 views
0

Я хочу использовать Scala Slick как FRM в моем проекте Scala. У меня есть следующий класс case для сопоставления с таблицей.Как сопоставить объект карты в Scala Slick

case class Person(name: String, pairs: Map[String, String]) 

Как я могу сопоставить класс этого случая с Slick?

class Person(tag: Tag) extends Table[(String, Double)](tag, "PERSON") { 
    def name = column[String]("NAME", O.PrimaryKey) 
    ??? 
    def * = (name, ???) 
} 
val person = TableQuery[Person] 

ответ

1

Традиционно в реляционных базах данных, пар ключ-значение может быть сохранено в виде отдельной таблицы:

что-то вроде:

CREATE TABLE person_pairs (person_id LONG, key TEXT, value TEXT) 

что-то подобное для работы последовательностей и других структур.

Однако, если вы используете postgres, вы можете использовать столбец hstore, используя библиотеку расширения slick-pg. Это будет отображать ваш hstore (который в основном представляет собой набор пар ключ-значение) на карту, которая является тем, что вы ищете

Смежные вопросы