2016-04-07 24 views
0

Funktionsdefinition zur Karte:Wie jsonb Eingabeparameter in Postgresql gespeicherte Prozedur in Java

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

java Aufruf Nach endet mit SQL-Ausnahme über Bedarf von param Besetzung ...

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

Antwort

0

Ja, Sie müssen PGobject erstellen und einfügen, aber mit einigen Änderungen:

Firs t:

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

Zweitens:

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