Eftersom pgJDBC 42.2.5 släpptes före (augusti 2018) till PostgreSQL 11-versionen (okt, 2018), tror jag att detta för närvarande är ett problem inom JDBC-drivrutinen för PostgreSQL själv. Jag har skapat ett problem inom GitHub-förvaret.
Som en lösning kan du skriva om STORED PROCEDURE
som en FUNCTION
och använd @NamedStoredProcedureQuery
eller interagera direkt med JDBC CallableStatement
t.ex.:
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();
Eller kör en inbyggd fråga med EntityManager
:
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
Jag kommer att uppdatera det här svaret så fort jag får svar från pgJDBC-underhållaren.
UPPDATERING:
Det här ämnet diskuteras redan i Postgres e-postlista (https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
) och det finns för närvarande ingen lösning. Det enda sättet är att skicka inbyggda SQL-frågor till databasen eller skriva om STORED PROCEDURE
som en FUNCTION