Karena pgJDBC 42.2.5 dirilis sebelum (Agustus 2018) ke rilis PostgreSQL 11 (Okt, 2018), saya pikir ini saat ini menjadi masalah dalam driver JDBC untuk PostgreSQL itu sendiri. Saya telah membuat masalah dalam repositori GitHub.
Untuk solusinya, Anda dapat menulis ulang STORED PROCEDURE
sebagai FUNCTION
dan gunakan @NamedStoredProcedureQuery
atau langsung berinteraksi dengan CallableStatement
J JDBC misalnya:
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();
Atau jalankan kueri asli dengan EntityManager
:
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
Saya akan memperbarui jawaban ini segera setelah saya mendapatkan jawaban dari pengelola pgJDBC.
PERBARUI:
Topik ini sudah dibahas di milis Postgres (https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
) dan saat ini tidak ada solusi. Satu-satunya cara adalah meneruskan kueri SQL asli ke database atau menulis ulang STORED PROCEDURE
sebagai FUNCTION