PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Не може да извика 11 съхранена процедура на PostgreSQL с Hibernate

Тъй като pgJDBC 42.2.5 беше пуснат преди (август 2018 г.) до версията PostgreSQL 11 (октомври 2018 г.), мисля, че в момента това е проблем в JDBC драйвера за самия PostgreSQL. Създадох проблем в хранилището на 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql заявка за получаване на брой на месеци в рамките на една година

  2. SqlAlchemy:Запитване на дължината на json полето, което има масив

  3. PostgreSQL TypeError:не всички аргументи са преобразувани по време на форматиране на низ

  4. Инструменти за генериране на диаграма на таблици на база данни с PostgreSQL?

  5. Управление на висока наличност в PostgreSQL – Част III:Patroni