Comme le pgJDBC 42.2.5 a été publié avant (août 2018) la version PostgreSQL 11 (octobre 2018), je pense que c'est actuellement un problème dans le pilote JDBC pour PostgreSQL lui-même. J'ai créé un problème dans le dépôt GitHub.
Pour une solution de contournement, vous pouvez réécrire la STORED PROCEDURE
en tant que FUNCTION
et utilisez @NamedStoredProcedureQuery
ou interagir directement avec le JDBC CallableStatement
par exemple :
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();
Ou exécutez une requête native avec le EntityManager
:
this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");
Je mettrai à jour cette réponse dès que j'aurai une réponse du responsable de pgJDBC.
MISE À JOUR :
Ce sujet est déjà abordé dans la liste de diffusion Postgres (https ://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us
) et il n'y a actuellement aucune solution. Le seul moyen est de transmettre des requêtes SQL natives à la base de données ou de réécrire la STORED PROCEDURE
en tant que FUNCTION