mysql - MySql 的 Slick Json 列支持
问题描述
我在 MySql 中有一个Json
类型列,我将 Scala 与 Slick 一起使用。如何Json
通过 Slick 为 Column 提供支持。
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)
}
任何帮助将不胜感激。提前致谢
解决方案
您可以使用 a在将其写入数据库时将其BaseColumnType
转换为 String 并在从数据库读取时将其解析为: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)
}
推荐阅读
- pandas - Jupyter Notebook - 检索 numpy 的错误
- javascript - 如何异步导入所有 Vue3 组件?
- python - newe Raspberry 中的 Adafruit BNO0555 方向传感器出错
- python - pd.to_numeric() 返回 TypeError: 'Series' 对象是可变的,因此它们不能被散列
- javascript - Ajax 将 json 发送到 Spring Boot 服务器并在新选项卡中打开生成的 pdf
- python - 如何制作每秒触发的恒定循环(没有睡眠或线程)?
- javascript - 使用 splice() 删除对象的数组元素
- html - 如何制作动画(收藏)图标?
- stripe-payments - 条纹收集和支付
- azure - 如何限制 Azure 应用注册的 Microsoft Graph 权限?