Ponieważ pgJDBC 42.2.5 został wydany przed (sierpień 2018) wydaniem PostgreSQL 11 (październik 2018), myślę, że jest to obecnie problem w sterowniku JDBC dla samego PostgreSQL. Utworzyłem problem w repozytorium GitHub.
Aby obejść ten problem, możesz przepisać STORED PROCEDURE
jako FUNCTION
i użyj @NamedStoredProcedureQuery
lub bezpośrednio wchodzić w interakcję z JDBC CallableStatement
np.:
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();
Lub wykonaj natywne zapytanie za pomocą EntityManager
:
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
Zaktualizuję tę odpowiedź, gdy tylko otrzymam odpowiedź od opiekuna pgJDBC.
AKTUALIZACJA:
Ten temat jest już omówiony na liście mailingowej Postgres (https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
) i obecnie nie ma rozwiązania. Jedynym sposobem jest przekazanie natywnych zapytań SQL do bazy danych lub przepisanie STORED PROCEDURE
jako FUNCTION