我在 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 - MySql 对 Slick Json 列的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54251918/