Da pgJDBC 42.2.5 blev udgivet før (aug, 2018) til PostgreSQL 11-udgivelsen (okt, 2018), tror jeg, at dette i øjeblikket er et problem i selve JDBC-driveren til PostgreSQL. Jeg har oprettet et problem i GitHub-lageret.
Som en løsning kan du omskrive STORED PROCEDURE
som en FUNCTION
og brug @NamedStoredProcedureQuery
eller interagere direkte med JDBC CallableStatement
f.eks.:
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 udfør en indbygget forespørgsel med EntityManager
:
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
Jeg opdaterer dette svar, så snart jeg får et svar fra pgJDBC-vedligeholderen.
OPDATERING:
Dette emne er allerede diskuteret på Postgres postliste (https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
), og der er i øjeblikket ingen løsning. Den eneste måde er at sende indbyggede SQL-forespørgsler til databasen eller omskrive STORED PROCEDURE
som en FUNCTION