SlickはSlickがサポートしていないcustom data type mapperを提供しています。私の場合は :保存JSONはJValueとして使用してデータベースに、コード内の文字列(私はjson4sを使用しています)として:
object JsonMapper{
import driver.api._
implicit val jsonMapper = MappedColumnType.base[JValue, String](
{ json => write(framesType) /* json writer */ },
{ str =>parse(str) /*json parser */ }
)
}
import JsonMapper._
case class Info(id:Int, json:JValue)
class DBTable(tag:Tag) extends Table[Info](tag, "info"){
val id = column[Int]("id")
val json = column[JValue]("json")
def * = (id ,json) <> (Info.tupled, Info.unapply)
}
私は、これはあなたのケースのために働くことを確認していません。しかし、これはSlickのカスタムデータ型をマップする方法です。
出典
2017-12-09 05:11:55
Sky