[英]Scala + Play Framework + Slick - Json as Model Field
我需要將Json Field保存為Play Framework Model的一列。 我在DAO中的表解析器是
class Table(tag: Tag) extends Table[Model](tag, "tablename") {
implicit val configFormat = Json.format[Config]
// Fields ...
def config = column[Config]("config", O.SqlType("JSON"))
// Fields ...
}
Config
被定義為模型在Play模型文件夾中的案例類,並具有其伴隨對象。 該對象的字段是Int,Double或String
case class Config ( // fields )
object Config {
implicit val readConfig: Reads[Config] = new Reads[Config]
for {
// fields
} yield Config(// fields)
implicit val configFormat = Json.format[Config]
}
問題是由於此錯誤我無法編譯
Error:(28, 37) could not find implicit value for parameter tt:
slick.ast.TypedType[models.Config]
def config = column[Config]("config", O.SqlType("JSON"))
有沒有辦法將Config模型保存為表中的Json(將其讀作Config)?
您需要告訴Slick如何將Config
實例轉換為數據庫列:
implicit val configFormat = Json.format[Config]
implicit val configColumnType = MappedColumnType.base[Config, String](
config => Json.stringify(Json.toJson(config)),
column => Json.parse(column).as[Config]
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.