pgJDBC42.2.5はPostgreSQL11リリース(2018年10月)より前(2018年8月)にリリースされたため、これは現在PostgreSQL自体のJDBCドライバー内の問題だと思います。 問題 を作成しました GitHubリポジトリ内。
回避策として、STORED PROCEDURE
を書き直すことができます。 FUNCTION
として @NamedStoredProcedureQuery
を使用します または、JDBC CallableStatement
と直接対話します 例:
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();
または、EntityManager
を使用してネイティブクエリを実行します :
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
pgJDBCメンテナから回答があり次第、この回答を更新します。
更新:
このトピックは、Postgresメーリングリスト( https: //www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
)そして現在解決策はありません。唯一の方法は、ネイティブSQLクエリをデータベースに渡すか、STORED PROCEDURE
を書き直すことです。 FUNCTION
として