Передать переменную OracleType в качестве параметра в Spring JPA - PullRequest
0 голосов
/ 21 февраля 2019

Как мне создать переменную OracleType в java для передачи оракулу SP с пружинным JPA.Вот фрагменты кода, которые я здесь использую.

Java-код -

StoredProcedureQuery storedProcedureQuery = em.createStoredProcedureQuery(PROCEDURE_E_FP_VAL);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_IN_PLAN_CD, String.class, ParameterMode.IN);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_IN_FND_LIST, OracleType.class, ParameterMode.IN);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_IN_FIRST_REP_CD, String.class, ParameterMode.IN);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_IN_SECOND_REP_CD, String.class, ParameterMode.IN);

            storedProcedureQuery.registerStoredProcedureParameter(PARAM_OUT_RTN_CD, String.class, ParameterMode.OUT);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_OUT_ERR_MSG, String.class, ParameterMode.OUT);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_OUT_REP1_INVALID_FND, String.class, ParameterMode.OUT);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_OUT_REP2_INVALID_FND, String.class, ParameterMode.OUT);
            storedProcedureQuery.registerStoredProcedureParameter(PARAM_OUT_INVALID_AGT_CD, String.class, ParameterMode.OUT);

            storedProcedureQuery.setParameter(PARAM_IN_PLAN_CD, plan_cd);
            storedProcedureQuery.setParameter(PARAM_IN_FND_LIST, **fundIds**);
            storedProcedureQuery.setParameter(PARAM_IN_FIRST_REP_CD, first_rep_code.toUpperCase());
            storedProcedureQuery.setParameter(PARAM_IN_SECOND_REP_CD, "");

            logger.info("Calling " + SCHEMA_NAME + "." + "E_FP_VAL", this);

            storedProcedureQuery.execute();

Параметры входа / выхода процедуры Oracle-

create or replace procedure e_fp_val(pi_plan_cd in varchar2
                                    ,pi_fnd_list in tval_fund
                                    ,pi_first_rep_cd in varchar2
                                    ,pi_second_rep_cd in varchar2 default null
                                    ,po_rtn_cd out varchar2
                                    ,po_err_msg out varchar2
                                    ,po_rep1_invalid_fnd out varchar2
                                    ,po_rep2_invalid_fnd out varchar2
                                    ,po_invld_agt_cd out varchar2
                                   ) IS

**Oracle Type -** 

create or replace TYPE TVAL_FUND AS TABLE of TVAL_FUND_REC;


------------------------------------------------------------------------

ЭтоFundIds в виде строки [].Поэтому я хочу преобразовать его в объект OracleType, который мне не ясен.

Пожалуйста, помогите мне в этом вопросе.

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