Ich muss ein Json-Feld als eine Spalte meines Play Framework-Modells speichern. Meine Tabelle Parser in DAO istScala + Play Framework + Slick - Json als Modellfeld
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
als Fall Klasse in Modell im Play-Modell Ordner definiert ist und sein Begleiter Objekt. Feld dieses Objekts sind Int, Double oder 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]
}
Problem ist, ich nicht aufgrund dieses Fehlers kompilieren
Error:(28, 37) could not find implicit value for parameter tt:
slick.ast.TypedType[models.Config]
def config = column[Config]("config", O.SqlType("JSON"))
Gibt es eine Möglichkeit, die Config-Modell als Json in der Tabelle zu speichern (es als Config lesen)?
Es funktioniert, danke. Denken Sie, dass es am besten ist, die Spalte in JSON oder Text zu speichern? – emmea90
Ich würde sie als JSON speichern. Dafür gibt es zwei Gründe: 1. Ihre DB-Engine würde die Gültigkeit von JSON-Werten erzwingen, die in diese Spalte eingefügt wurden. 2. Wenn Sie diese Werte als JSONs speichern, können Sie zusätzliche JSON-spezifische Funktionen und Operatoren für diese Spalte verwenden. –