/ / Ako mapovať vstupný parameter jsonb v uloženej procedúre Postgresql v jave - postgresql, uložené procedúry, jsonb

Ako mapovať vstupný parameter jsonb v Postgresql uloženej procedúre v java - postgresql, uložených procedúrach, jsonb

Definícia funkcie:

CREATE OR REPLACE FUNCTION insert_json(
p_name character varying,
p_content jsonb)

Po ukončení volania Java sa končí výnimka SQL o potrebe odovzdávania parametrov ...

PreparedStatement ps = helper.prepareStatement(conn, "SELECT * FROM insert_json(?, ?)");
ps.setString(1, name);

PGobject pgo = new PGobject();
pgo.setType("jsonb");
pgo.setValue(content);

ps.setObject(2, pgo);

PostgreSQL 9.4

odpovede:

0 pre odpoveď č. 1

Áno, musíte vytvoriť PGobject a vložiť, ale s niekoľkými zmenami:

Najprv:

PGobject pgo = new PGobject();
pgo.setType("jsonb");
pgo.setValue(content);

Po druhé:

jdbcTemplate.update("SELECT yourFunction(?, ?)",
new Object[] {text, pgo},
new int[] {Types.VARCHAR, Types.OTHER });