Call stored procedure using spring data jpa where procedure is

177 Views Asked by At

There is a stored procedure being called using Prepared statement. I need to call the same using Spring data JPA. I tried with the following solution but it's giving me exception: java.lang.IllegalArgumentException: Type cannot be null

Procedure call using prepared statement:

declare p_transaction_header 
transaction_header_rec := NULL; x_voucher_id NUMBER; x_return_status varchar2(200); x_rejection_reason varchar2(4000); begin p_transaction_header.source := ? ; p_transaction_header.total_amount := ? ; p_transaction_header.total_records := ? ; p_transaction_header.external_key_identifier := ? ; open_transaction(p_transaction_header, ?, ?, ?); end;

prepareCall.setString(1, "test");
        prepareCall.setBigDecimal(2, traxFileAggregationInfo.getL_TOTAL_ENTERED_DEBIT_AMOUNT());
        prepareCall.setBigDecimal(3, traxFileAggregationInfo.getL_TOTAL_RECORDS());
        prepareCall.setString(4, fileId);
        prepareCall.registerOutParameter(5,java.sql.Types.VARCHAR);
        prepareCall.registerOutParameter(6, java.sql.Types.VARCHAR);
        prepareCall.registerOutParameter(7,java.sql.Types.VARCHAR);
        prepareCall.executeQuery();

        vocherId = prepareCall.getString(5);
        rejStatus = prepareCall.getString(6);
        rejReason = prepareCall.getString(7);

        openTransactionBo = new OpenTransactionBo(vocherId, rejStatus, rejReason);

Solution I am trying:

@Procedure(name = "open_transaction")
OpenTransactionBo openTransaction(String source, double totalAmount, int totalRecords, String externalKeyIdentifier);

public class OpenTransactionBo {

private String vocherId;

private String rejStatus;

private String rejReason;

}

0

There are 0 best solutions below