Я хочу вызвать функцию PostgreSQL с помощью SimpleJdbcCall при весенней загрузке, в имени функции базы данных используется верблюжий регистр, но когда я вызываю функцию, она автоматически преобразуется в нижний регистр и выдается исключение.
Код:
public class RegistrationRepo {
private JdbcTemplate jdbcTemplate;
@Autowired
public RegistrationRepo(final JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public Message saveEmployee(Employee employee) {
jdbcTemplate.setResultsMapCaseInsensitive(false);
final String FNC="\"FncRegistration\"";
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName(FNC)
.returningResultSet("msg", (rs, rowNumber) -> new String(rs.getString("RegistrationID")));
Map<String, Object> params = new HashMap<>();
params.put("p_PersonType", employee.getPersonType());
params.put("p_FirstName", employee.getFirstName());
params.put("p_LastName", employee.getLastName());
params.put("p_EmployeeID", employee.getEmployeeID());
params.put("p_Mobile", employee.getMobile());
params.put("p_EmailAddress", employee.getEmailAddress());
SqlParameterSource inParams = new MapSqlParameterSource().addValues(params);
Map<String, Object> result = simpleJdbcCall.execute(inParams);
@SuppressWarnings("unchecked")
List<String> tests = (List<String>) result.get("msg");
if (tests.get(0).equals("0")) {
return new Message(false, Constant.MSG_FAILED, tests.get(0));
} else {
return new Message(true, Constant.MSG_SUCCESS, tests.get(0));
}
}
}
Исключение:
org.springframework.dao.InvalidDataAccessApiUsageException: Unable to determine the correct call signature - no procedure/function/signature for '"fncregistration"'
Я пробовал с: final String FNC="FncRegistration";
, но с тем же исключением
Я искал в stackoerflow, но не нашел подходящего решения
Пожалуйста, помогите