Как вызвать функцию PostgreSQL с помощью Spring boot SimpleJdbcCall с учетом регистра - PullRequest
0 голосов
/ 06 августа 2020

Я хочу вызвать функцию 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, но не нашел подходящего решения

Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...