|
|
Change By:
|
Christian Bauer
|
Summary:
|
Named output parameters don't work for stored procedure call
|
|
In ProcedureCallImpl:
{code} private void prepareForNamedParameters() { if ( parameterStrategy == ParameterStrategy.POSITIONAL ) { throw new QueryException( "Cannot mix named and positional parameters" ); } if ( parameterStrategy == null ) { {code}
I think parameterStrategy can never be null. The check should probably be for ParameterStrategy.UNKNOWN.
A stored procedure call with named output parameters (input works) currently throws this:
{code} java.lang.IllegalArgumentException: Invalid mix of named and positional parameters at org.hibernate.jpa.internal.StoredProcedureQueryImpl.getOutputParameterValue(StoredProcedureQueryImpl.java:293) …
Caused by: org.hibernate.procedure.ParameterStrategyException: Names were not used to register parameters with this stored procedure call at org.hibernate.procedure.internal.ProcedureCallImpl.getParameterRegistration(ProcedureCallImpl.java:358) at org.hibernate.procedure.internal.ProcedureOutputsImpl.getOutputParameterValue(ProcedureOutputsImpl.java:63) at org.hibernate.jpa.internal.StoredProcedureQueryImpl.getOutputParameterValue(StoredProcedureQueryImpl.java:290) {code}
|
|
|
|