sql >> Databasteknik >  >> RDS >> PostgreSQL

JPA 2.1 StoredProcedureQuery med PostgreSQL och REF_CURSORs

Kort svar:Vänd ordningen på dina två samtal till registerStoredProcedureParameter() :

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

Långt svar:Jag grävde lite i Vila källkod för stöd för Postgress-uppringningsbara uttalanden , och fann att varje registerStoredProcedureParameter() samtalet skapar en ParameterRegistrationImplementor instans som hamnar i en lista och skickas runt. Du kommer att notera att den här klassen lagrar positionen för parametern, som är oberoende av dess position i listan.

Senare är den här listan

  1. SQL Server Full Text Search Leading Wildcard

  2. MySQL-textkolumn trunkeras

  3. How to_char() Fungerar i PostgreSQL

  4. Hur Cosh() fungerar i PostgreSQL