使用 MySql 的圆滑 Json 列支持
Slick Json Column Support with MySql
我在 MySql 中有一个 Json
类型列,我正在使用 Scala 和 Slick。
如何通过 Slick 为 Json
列提供支持。
class SampleTable(tag: Tag) extends Table[(String, ??)](tag, "test") {
override def * : ProvenShape[NodeReference] = (name, data)
def name: Rep[String] = column[String]("name", O.PrimaryKey)
def Data: Rep[??] = column[??]("data", O.PrimaryKey)
}
任何帮助将不胜感激。
提前致谢
您可以使用 BaseColumnType
将 JSON
转换为字符串,同时将其写入数据库并在从数据库读取时将其解析为 JSON
:
import play.api.libs.json.{JsValue, Json}
private implicit val jsValueMappedColumnType: BaseColumnType[JsValue] =
MappedColumnType.base[JsValue, String](Json.stringify, Json.parse)
class SampleTable(tag: Tag) extends Table[(String, JsValue)](tag, "test") {
def name: Rep[String] = column[String]("name", O.PrimaryKey)
def data: Rep[JsValue] = column[JsValue]("data", O.PrimaryKey)
def * = (name, data)
}
我在 MySql 中有一个 Json
类型列,我正在使用 Scala 和 Slick。
如何通过 Slick 为 Json
列提供支持。
class SampleTable(tag: Tag) extends Table[(String, ??)](tag, "test") {
override def * : ProvenShape[NodeReference] = (name, data)
def name: Rep[String] = column[String]("name", O.PrimaryKey)
def Data: Rep[??] = column[??]("data", O.PrimaryKey)
}
任何帮助将不胜感激。 提前致谢
您可以使用 BaseColumnType
将 JSON
转换为字符串,同时将其写入数据库并在从数据库读取时将其解析为 JSON
:
import play.api.libs.json.{JsValue, Json}
private implicit val jsValueMappedColumnType: BaseColumnType[JsValue] =
MappedColumnType.base[JsValue, String](Json.stringify, Json.parse)
class SampleTable(tag: Tag) extends Table[(String, JsValue)](tag, "test") {
def name: Rep[String] = column[String]("name", O.PrimaryKey)
def data: Rep[JsValue] = column[JsValue]("data", O.PrimaryKey)
def * = (name, data)
}