Vzhledem k tomu, že pgJDBC 42.2.5 byl vydán před (srpen 2018) vydáním PostgreSQL 11 (říjen 2018), myslím si, že se v současné době jedná o problém v ovladači JDBC pro samotný PostgreSQL. Vytvořil jsem problém v úložišti GitHub.
Chcete-li to obejít, můžete přepsat STORED PROCEDURE
jako FUNCTION
a použijte @NamedStoredProcedureQuery
nebo přímo komunikovat s CallableStatement
JDBC např.:
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/", "postgres", "postgres");
CallableStatement callableStatement = conn.prepareCall("{call f_raise_wage_employee_older_than(?,?)}");
callableStatement.setInt(1, 20);
callableStatement.setInt(2, 500);
callableStatement.executeUpdate();
Nebo spusťte nativní dotaz pomocí EntityManager
:
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
Tuto odpověď aktualizuji, jakmile dostanu odpověď od správce pgJDBC.
AKTUALIZACE:
Toto téma je již diskutováno v Postgres Mailing listu (https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
) a v současné době neexistuje žádné řešení. Jediný způsob je předat nativní SQL dotazy do databáze nebo přepsat STORED PROCEDURE
jako FUNCTION