Мне нужно сохранить поле Json как столбец моей модели Play Framework. Моя таблица парсер в DAO являетсяScala + Play Framework + Slick - Json as Model Field
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 Model и имеет свой объект компаньон. Поле этого объекта Int, двойной или Строка
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)?
Он работает, спасибо. Как вы думаете, лучше сохранить столбец в json или text? – emmea90
Я бы сохранил их как JSON. Для этого есть две причины: 1. Ваш механизм DB обеспечит достоверность значений JSON, вставленных в этот столбец. 2. Сохраняя эти значения в виде JSON, вы сможете использовать дополнительные JSON-функции и операторы в этом столбце. –