PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Không thể gọi 11 Thủ tục được lưu trữ của PostgreSQL với Hibernate

Vì pgJDBC 42.2.5 được phát hành trước (tháng 8 năm 2018) cho bản phát hành PostgreSQL 11 (tháng 10 năm 2018), tôi nghĩ rằng đây hiện là một vấn đề trong trình điều khiển JDBC cho chính PostgreSQL. Tôi đã tạo một Vấn đề trong kho lưu trữ GitHub.

Để có cách giải quyết khác, bạn có thể viết lại STORED PROCEDURE dưới dạng FUNCTION và sử dụng @NamedStoredProcedureQuery hoặc tương tác trực tiếp với JDBC CallableStatement ví dụ:

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();

Hoặc thực hiện một truy vấn gốc với EntityManager :

this.em.createNativeQuery("CALL p_raise_wage_employee_older_than(1, 20)");

Tôi sẽ cập nhật câu trả lời này ngay khi nhận được câu trả lời từ người bảo trì pgJDBC.

CẬP NHẬT:

Chủ đề này đã được thảo luận trong danh sách Gửi thư của Postgres ( https://www.postgresql.org/message-id/4285.1537201440%40sss.pgh.pa.us ) và hiện không có giải pháp. Cách duy nhất là chuyển các truy vấn SQL gốc vào cơ sở dữ liệu hoặc viết lại STORED PROCEDURE dưới dạng 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. Cách tạo một select với mảng chứa mệnh đề giá trị trong psql

  2. Các truy vấn trong pg_stat_activity bị cắt bớt?

  3. Tạo kiểm tra tiện ích mở rộng trong postgresql

  4. Lỗi 'Chứng chỉ tự ký' trong khi truy vấn cơ sở dữ liệu Postgres được lưu trữ trên Heroku từ ứng dụng Node.js

  5. Postgresql ném giá trị null vào cột vi phạm ràng buộc not-null khi sử dụng mối quan hệ oneToMany trong JPA