Hello. I'm trying to make a procedure call from JAVA 8.
Even though I'm not using binding of different types, I still have this exception.
Can anyone tell me why this happens?
If I pass parameter arguments by ordinal, it works normally.
Apparently JDBC or Oracle forces me to use by ordinal, and doesn't let me use with by
named, even though I'm not mixing the two types.
private static final String NR_USER = "nm_user_p";
private static final String NM_USER_BANCO = "nm_user_banco_p";
private static final String ESTABLISHMENT = "establishment_p";
private static final String EQUIPMENT = "equipment_p";
private static final String RESULT = "result";
private static final String PROCEDURE = "procedure";
public List<Object[]> findByFilter(final DtoIn filter) {
final StoredProcedureQuery query = entityManager.createStoredProcedureQuery(PROCEDURE)
.registerStoredProcedureParameter(NR_USER, Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter(NM_USER_BANCO, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(ESTABLISHMENT, Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter(EQUIPMENT, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(RESULT , Class.class, ParameterMode.REF_CURSOR);
query.setParameter(NR_USER, filter.getNrUser().intValue())
.setParameter(NM_USER_BANCO, filter.getBanco())
.setParameter(ESTABLISHMENT, filter.getEstabelecimentCode())
.setParameter(EQUIPMENT, filter.getEquipmentCode());
query.execute();
return query.getResultList();
}