mysql - MySql 对 Slick Json 列的支持

标签 mysql scala slick slick-3.0 play-slick

我在 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)

}

任何帮助将不胜感激。 提前致谢

最佳答案

您可以使用 BaseColumnTypeJSON 转换为字符串,同时将其写入数据库并在读取时将其解析为 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/

相关文章:

Scala Play Framework,在哪里创建 Actor ?

scala - Scala 和变量中的模式匹配

scala - 如何编写与数据库无关的 Play 应用程序并执行首次数据库初始化?

mysql - 使用 MySQL 在 Slick 3 中做主/从的最佳方法

mysql - 如何对此查询进行排序

php - 重写Wordpress核心函数_wp_mysql_week()

php - mysqli::mysqli(): (HY000/2002): 无法通过socket 'MySQL'连接到本地MySQL服务器(2)

mysql - 为一对多表关系创建连接查询

Scala try-catch没有捕获异常

斯卡拉 : Never ending stream