Aangezien de pgJDBC 42.2.5 eerder (augustus 2018) werd uitgebracht voor de PostgreSQL 11-release (oktober 2018), denk ik dat dit momenteel een probleem is in het JDBC-stuurprogramma voor PostgreSQL zelf. Ik heb een probleem gemaakt binnen de GitHub-repository.
Voor een tijdelijke oplossing kunt u de STORED PROCEDURE
. herschrijven als een FUNCTION
en gebruik @NamedStoredProcedureQuery
of rechtstreeks communiceren met de JDBC CallableStatement
bijv.:
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();
Of voer een native query uit met de EntityManager
:
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
Ik zal dit antwoord bijwerken zodra ik een antwoord krijg van de pgJDBC-beheerder.
UPDATE:
Dit onderwerp is al besproken in de Postgres-mailinglijst (https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
) en er is momenteel geen oplossing. De enige manier is om native SQL-query's door te geven aan de database of de STORED PROCEDURE
te herschrijven als een FUNCTION