Есть объект Phrase
который имеет поле представленное как JSON
объект, но при попытке записать его в колонку с соответствующим типом падает:
Caused by: org.postgresql.util.PSQLException: ERROR: column "phrase" is of type json but expression is of type bytea Подсказка: You will need to rewrite or cast the expression.
Сам объект:
public class Phrase {
private int id;
private PGobject phrase;
public Phrase() {
}
public Phrase(int id, String phraseVal) throws SQLException {
this.id = id;
phrase = new PGobject();
phrase.setType("json");
phrase.setValue(phraseVal);
}
...геттеры и сеттеры...
}
Метод добавления в базу:
public void addPhrase(final Phrase phrase) {
try (final Session session = factory.get().openSession()) {
session.beginTransaction();
session.save(phrase);
session.getTransaction().commit();
}
}
А вызываю я это так:
final Phrase phrase = new Phrase(1, new Gson().toJson(mapWithDataForJson));
new DAOImpl(factory).addPhrase(phrase);
И вроде "танец с бубном" для кастинга в Postgres-json формат я исполнил но что-то все равно идет не так. Помогите пожалуйста разобраться. Как мне записать произвести вставку json поля?
Решение
phrase = new PGobject();
phrase.setType("json");
phrase.setValue(phraseVal);
Взято вот из этого вопроса (предпоследний ответ):
https://stackoverflow.com/questions/35844138/how-can-i-insert-json-object-into-postgres-using-java-preparedstatement
И на всякий случай таблица:
CREATE TABLE IF NOT EXISTS phrases (
id SERIAL NOT NULL ,
phrase JSON NOT NULL ,
PRIMARY KEY (id)
);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Существует JTable с 3 столбцами и 100 строкамиНужно по событию на таблице узнать какие данные лежат во втором столбце, т
ДобрыйОчень нужна помощь, в программировании совсем новичок и возник затор с задачкой
В android studio в sdk manager возможно установить сразу несколько версийДолго гуглил, но так и не понял, какая версия активна при создании нового проекта?...