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

JPA 2.1 StoredProcedureQuery với PostgreSQL và REF_CURSORs

Câu trả lời ngắn gọn:Đảo ngược thứ tự của hai lệnh gọi của bạn đến registerStoredProcedureParameter() :

storedProcedure.registerStoredProcedureParameter(1, Object.class, ParameterMode.REF_CURSOR);
storedProcedure.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);

Câu trả lời dài:Tôi đã đào một số trong Mã nguồn Hibernate để hỗ trợ câu lệnh có thể gọi Postgress và nhận thấy rằng mỗi registerStoredProcedureParameter() lệnh gọi tạo ra một ParameterRegistrationImplementor ví dụ được đưa vào danh sách và được chuyển đi khắp nơi. Bạn sẽ lưu ý rằng lớp này lưu trữ vị trí của tham số, độc lập với vị trí của nó trong danh sách.

Sau đó, danh sách này là

  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 - không thể thả cơ sở dữ liệu do một số kết nối tự động với DB

  2. Mac OSX Lion Postgres không chấp nhận kết nối trên /tmp/.s.PGSQL.5432

  3. Bỏ qua dấu ngoặc kép khi nhập tệp CSV vào PostgreSQL?

  4. Làm thế nào để bạn sử dụng các biến trong một kịch bản PostgreSQL đơn giản?

  5. Lỗi không khớp dữ liệu cấp độ khi sử dụng \ PDO ::ATTR_EMULATE_PREPARES => true