Обработка Json в пятно для postgress - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь вставить json в столбец postgress, который является json

Но при скользкой генерации он сгенерировался следующим образом:

val taskVariables: Rep [Option [String]] = column [Опция [String]] («TaskVariables», O.Length (2147483647, varing = false), O.Default (None))

, чтобы вставить его, я кодирую так:

    val insertRecord = Record(id = 0L,taskVariables = Some(Map("a">"b").asJson)
    for{
      result<-insertEntity(insertRecord)
    }yield result
  }

, который выдает ошибку при вставке, как показано ниже:

"message": "столбец" TaskVariables "имеет тип json, но выражение имеет тип символьный, изменяющийся", "ex": "org.postgresql.util.PSQLException: ОШИБКА: столбец «TaskVariables» относится к типу json, но выражение имеет тип, изменяющий символ. Подсказка: вам нужно переписать или привести выражение.2433ment.executeInternal (PgStatement.java:441) в org.postgresql.jdbc.PgStatement.execute (PgStatement.java:365) в org.postgresql.jdbc.PgPreparedStatement.executeWithFlags (PgPrepared.15.jg).PgPreparedStatement.executeUpdate (PgPreparedStatement.java:132) в

1 Ответ

0 голосов
/ 25 марта 2019

Я не совсем уверен, что вы на самом деле пытаетесь сделать, но следующие типы примитивов поддерживаются "из коробки" для баз данных на основе JDBC в JdbcProfile (с некоторыми ограничениями, налагаемыми отдельными драйверами баз данных):

Обнуляемые столбцы представлены в Option [T], где T - один из поддерживаемых типов примитивов.

Numeric types: Byte, Short, Int, Long, BigDecimal, Float, Double
LOB types: java.sql.Blob, java.sql.Clob, Array[Byte]
Date types: java.sql.Date, java.sql.Time, java.sql.Timestamp
Boolean
String
Unit
java.util.UUID
  • Если для макета вашей базы данных требуются имена схем, вы можете указать имя схемы для таблицы.

как этот:

class Coffees(tag: Tag)
  extends Table[(String, Int, Double, Int, Int)](tag, Some("MYSCHEMA"), "COFFEES") {
  //...
}

Вы можете прочитать больше здесь.

...