*
* @return
*/
private StoredProcedureQuery newAdhocStoredProcedureQuery() {
StoredProcedureQuery procedureQuery = getEntityManager().createStoredProcedureQuery(
procedureAttributes.getProcedureName());
JpaParameters params = getQueryMethod().getParameters();
for (JpaParameter param : params) {
if (!param.isBindable()) {
continue;
}
if (param.isNamedParameter()) {
procedureQuery.registerStoredProcedureParameter(param.getName(), param.getType(), ParameterMode.IN);
} else {
procedureQuery.registerStoredProcedureParameter(param.getIndex() + 1, param.getType(), ParameterMode.IN);
}
}
if (procedureAttributes.hasReturnValue()) {
procedureQuery.registerStoredProcedureParameter(params.getNumberOfParameters() + 1,
procedureAttributes.getOutputParameterType(), ParameterMode.OUT);
}
return procedureQuery;
}