我想在我的Scala项目中使用Scala Slick作为FRM。我有以下案例类映射到表。
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]
答案 0 :(得分:1)
传统上,在关系数据库中,键值对可以存储为单独的表:
类似的东西:
CREATE TABLE person_pairs (person_id LONG, key TEXT, value TEXT)
类似于序列和其他结构的东西。
但是,如果您使用的是postgres,则可以使用slick-pg扩展程序库使用hstore
列。这会将你的hstore(基本上是一组键值对)映射到Map,这就是你要找的东西