Issue: call procedure with multiple out parameters.

@Procedure(procedureName = "procedureName" , outputParameterName = "parma1", outputParameterName = "param2") Map methodName();

I am getting below error: Caused by: java.lang.IllegalArgumentException: Type cannot be null at org.hibernate.query.procedure.internal.ProcedureParameterImpl.setHibernateType(ProcedureParameterImpl.java:130) at org.hibernate.query.procedure.internal.ProcedureParameterImpl.(ProcedureParameterImpl.java:88) at org.hibernate.procedure.internal.ProcedureCallImpl.registerParameter(ProcedureCallImpl.java:290) at org.hibernate.procedure.internal.ProcedureCallImpl.registerStoredProcedureParameter(ProcedureCallImpl.java:579) at org.hibernate.procedure.internal.ProcedureCallImpl.registerStoredProcedureParameter(ProcedureCallImpl.java:70) at org.springframework.data.jpa.repository.query.StoredProcedureJpaQuery.lambda$newAdhocStoredProcedureQuery$1(StoredProcedureJpaQuery.java:228) at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104) at java.base/java.util.stream.IntPipeline$Head.forEach(IntPipeline.java:593) at org.springframework.data.jpa.repository.query.StoredProcedureJpaQuery.newAdhocStoredProcedureQuery(StoredProcedureJpaQuery.java:219) at org.springframework.data.jpa.repository.query.StoredProcedureJpaQuery.createStoredProcedure(StoredProcedureJpaQuery.java:179) at org.springframework.data.jpa.repository.query.StoredProcedureJpaQuery.doCreateQuery(StoredProcedureJpaQuery.java:103) at org.springframework.data.jpa.repository.query.StoredProcedureJpaQuery.createQuery(StoredProcedureJpaQuery.java:93)

Affects: \


Comment From: subesingh1981

spring boot 2.3.4 spring framework 5 spring cloud : Hoxton.SR8

Comment From: subesingh1981

Detail given below web link http://roufid.com/3-ways-to-call-a-stored-procedure-with-hibernate-jpa-2-1/ work for me.

Register the procedure manually as given below.

// Dynamic stored procedure definition.

StoredProcedureQuery addBookStoredProcedure = entityManager.createStoredProcedureQuery("addBook_sp"); addBookStoredProcedure.registerStoredProcedureParameter("sum", String.class, ParameterMode.OUT);

/// call the stored procedure and get the result query.execute(); Double sum = (Double) addBookStoredProcedure.getOutputParameterValue("sum");