Jawaban singkat:Balikkan urutan dua panggilan Anda ke registerStoredProcedureParameter()
:
storedProcedure.registerStoredProcedureParameter(1, Object.class, ParameterMode.REF_CURSOR);
storedProcedure.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
Jawaban panjang:Saya melakukan penggalian di Hibernate kode sumber untuk dukungan pernyataan callable Postgress
, dan menemukan bahwa setiap registerStoredProcedureParameter()
panggilan membuat ParameterRegistrationImplementor
contoh yang akan ditempelkan ke dalam daftar dan diedarkan. Anda akan melihat bahwa kelas ini menyimpan posisi parameter, yang tidak bergantung pada posisinya di dalam daftar.