saveOrUpdate method in Hibernate is throwing java.sql.SQLSyntaxErrorException: ORA-01722: invalid number

Viewed 33

the saveOrUpdate method is throwing java.sql.SQLSyntaxErrorException: ORA-01722: invalid number exception while trying to save the object of relevant details it is giving this particular error after upgrading the version from Hibernate 3 to 5. Plz suggest me the fix.

@Override
    public void saveOrUpdateCmRetroEvtTxnAcis(CmRetroEvtTxnAcis cmRetroEvtTxn) {
        LOGGER.info(METHOD_START);
        sessionFactory.getCurrentSession().saveOrUpdate(cmRetroEvtTxn);
        LOGGER.info(METHOD_END);

cmRetroEvtTxn object is initialized and details are fed below and the call is happening here esbRetroactiveBillLinesDao.saveOrUpdateCmRetroEvtTxnAcis(cmRetroEvtTxn);

public void loadCmRetroEvtTxnTable(EsbRetroBillLinesAcisBean sendRetroBillLineAcisBean) {
        LOGGER.info(METHOD_START);
        // DD fix: eSB Decom - Retro transactions with Gross extended amount 0 $
        // should be suppressed from being loaded in BRMS.
        if (Double.parseDouble(sendRetroBillLineAcisBean.getGrossExtAmt()) != 0) {
            CmRetroEvt cmRetroEvt = new CmRetroEvt();
            CmRetroEvtTxnAcis cmRetroEvtTxn = new CmRetroEvtTxnAcis();
            CmRetroEvtTxnId cmRetroEvtTxnId = new CmRetroEvtTxnId();
            cmRetroEvt.setExt_source_id(Integer.parseInt(sendRetroBillLineAcisBean.getExtRefId()));

            cmRetroEvtTxnId.setCm_retro_evt(cmRetroEvt);
            cmRetroEvtTxnId.setCm_ln_seq(sendRetroBillLineAcisBean.getBillLineNbr());

            cmRetroEvtTxn.setRetro_evt_txn_id(cmRetroEvtTxnId);
            cmRetroEvtTxn.setCm_gross_ext_amt(Double.parseDouble(sendRetroBillLineAcisBean.getGrossExtAmt()));
            cmRetroEvtTxn.setCm_charge_from_dt(sendRetroBillLineAcisBean.getChargeFromDate());
            cmRetroEvtTxn.setCm_charge_to_dt(sendRetroBillLineAcisBean.getChargeToDate());
            cmRetroEvtTxn.setCm_acct_div_cd(sendRetroBillLineAcisBean.getAccDivCode());
            cmRetroEvtTxn.setCm_company_cd(sendRetroBillLineAcisBean.getCompanyCode());
            cmRetroEvtTxn.setCm_chg_ln_cd(sendRetroBillLineAcisBean.getChargeLineCode());
            cmRetroEvtTxn.setPolicy_nbr(sendRetroBillLineAcisBean.getPolicyNbr());
            cmRetroEvtTxn.setCm_pck_sav_cd(sendRetroBillLineAcisBean.getPkgSavCode());
            cmRetroEvtTxn.setCm_prem_fee_rel_id(sendRetroBillLineAcisBean.getPremFeeRelId());
            cmRetroEvtTxn.setCm_inv_fee_txn_id(sendRetroBillLineAcisBean.getInvFeeTransId());
            cmRetroEvtTxn.setCm_svc_fee_rt_type_cd(sendRetroBillLineAcisBean.getSrvcFeeRateCode());
            cmRetroEvtTxn.setCm_billing_model_flg(sendRetroBillLineAcisBean.getSrvcFeeBillMdlCode());
            cmRetroEvtTxn.setCm_sfa_rate(sendRetroBillLineAcisBean.getSrvcFeeRate());
            cmRetroEvtTxn.setCm_svc_fee_amt(sendRetroBillLineAcisBean.getSrvcFeeAmt());
            cmRetroEvtTxn.setExternal_ref_id(sendRetroBillLineAcisBean.getSrvcFeeAgmtId());
            cmRetroEvtTxn.setCm_billed_mem_cnt(sendRetroBillLineAcisBean.getMemberCount());
            cmRetroEvtTxn.setCm_billed_sub_cnt(sendRetroBillLineAcisBean.getDetLineCount());
            cmRetroEvtTxn.setCm_rate_cov_type_cd(sendRetroBillLineAcisBean.getPdtTypeCode());
            cmRetroEvtTxn.setCm_tops_prd_cd(sendRetroBillLineAcisBean.getTopsPdtCode());
            cmRetroEvtTxn.setCm_pcid(sendRetroBillLineAcisBean.getPciCode());
            cmRetroEvtTxn.setCm_eligibility_stat_type_cd(sendRetroBillLineAcisBean.getSubStsCode());
            cmRetroEvtTxn.setCm_total_volume(sendRetroBillLineAcisBean.getTotVolume().toString());
            cmRetroEvtTxn.setCre_dttm(sendRetroBillLineAcisBean.getCreDttm());
            cmRetroEvtTxn.setIlm_arch_sw(null);
            cmRetroEvtTxn.setIlm_dt(null);
            cmRetroEvtTxn.setVersion(ESBRETROACTIVEBILLLINESVERSION);
            cmRetroEvtTxn.setCm_le(sendRetroBillLineAcisBean.getCmle());
            cmRetroEvtTxn.setCm_le_oon(sendRetroBillLineAcisBean.getCmleoon());
            cmRetroEvtTxn.setCm_fund_arrng_cd(sendRetroBillLineAcisBean.getCmfundarrngcd());
            cmRetroEvtTxn.setCm_hmo_sw(sendRetroBillLineAcisBean.getCmhmosw());
            cmRetroEvtTxn.setCm_lob(sendRetroBillLineAcisBean.getCmlob());
            cmRetroEvtTxn.setCm_oon_sw(sendRetroBillLineAcisBean.getCmoonsw());
            cmRetroEvtTxn.setCm_frozen_mkt_seg(sendRetroBillLineAcisBean.getCmfrozenmktseg());
            cmRetroEvtTxn.setCm_coverage_type_cd(sendRetroBillLineAcisBean.getCmcoveragetypecd());
            cmRetroEvtTxn.setCm_state_issue(sendRetroBillLineAcisBean.getCmstateissue());
            cmRetroEvtTxn.setCm_sales_office(sendRetroBillLineAcisBean.getCmsalesoffice());
            cmRetroEvtTxn.setCm_rating_zip(sendRetroBillLineAcisBean.getCmratingzip());
            cmRetroEvtTxn.setCm_retro_or_open_bal_flg(sendRetroBillLineAcisBean.getCmretrooropenbalflg());
            cmRetroEvtTxn.setCm_rev_freq_cd(sendRetroBillLineAcisBean.getCmrevfreqcd());
            cmRetroEvtTxn.setCm_reins_refer_cd(sendRetroBillLineAcisBean.getCmreinsrefercd());
            cmRetroEvtTxn.setCm_esb_invoice_nbr(SPACEVALUES);
            cmRetroEvtTxn.setCm_esb_invoice_due_dt(null);

            esbRetroactiveBillLinesDao.saveOrUpdateCmRetroEvtTxnAcis(cmRetroEvtTxn);
        } else {
            LOGGER.info(
                    "Retro transactions with Gross extended amount $0 are suppressed in DD and not loaded into BRMS ! ");
            LOGGER.info("External source id :: {}", sendRetroBillLineAcisBean.getExtRefId());
            LOGGER.info("CM_LN_SEQ in txn table :: {}", sendRetroBillLineAcisBean.getBillLineNbr());

        }
        LOGGER.info(METHOD_END);
    }

the saveOrUpdate method is throwing java.sql.SQLSyntaxErrorException: ORA-01722: invalid number exception while trying to save the object of relevant details it is giving this particular error after upgrading the version from Hibernate 3 to 5 and the error is following :-

java.sql.SQLSyntaxErrorException: ORA-01722: invalid number

    at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:747) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3822) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57) ~[hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.getDatabaseSnapshot(AbstractEntityPersister.java:1566) ~[hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.engine.internal.StatefulPersistenceContext.getDatabaseSnapshot(StatefulPersistenceContext.java:320) ~[hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:306) ~[hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.event.internal.EntityState.getEntityState(EntityState.java:59) ~[hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:85) ~[hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75) ~[hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) [hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:645) [hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:638) [hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:633) [hibernate-core-5.5.4.Final.jar:5.5.4.Final]
    at com.uhg.esbdb.brmsbatch.dao.impl.EsbRetroactiveBillLinesDaoImpl.saveOrUpdateCmRetroEvtTxnAcis(EsbRetroactiveBillLinesDaoImpl.java:174) [ESBDBBrmsBatch.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_342]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_342]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_342]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_342]
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) [spring-aop-5.3.14.jar:5.3.14]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) [spring-aop-5.3.14.jar:5.3.14]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) [spring-aop-5.3.14.jar:5.3.14]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) [spring-tx-5.3.14.jar:5.3.14]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) [spring-tx-5.3.14.jar:5.3.14]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) [spring-tx-5.3.14.jar:5.3.14]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [spring-aop-5.3.14.jar:5.3.14]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) [spring-aop-5.3.14.jar:5.3.14]
    at com.sun.proxy.$Proxy71.saveOrUpdateCmRetroEvtTxnAcis(Unknown Source) [?:?]
    at com.uhg.esbdb.brmsbatch.business.SendRetroBillLineAcisWriter.loadCmRetroEvtTxnTable(SendRetroBillLineAcisWriter.java:311) [ESBDBBrmsBatch.jar:?]
    at com.uhg.esbdb.brmsbatch.business.SendRetroBillLineAcisWriter.write(SendRetroBillLineAcisWriter.java:169) [ESBDBBrmsBatch.jar:?]
    at org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:193) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.item.SimpleChunkProcessor.doWrite(SimpleChunkProcessor.java:159) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.item.SimpleChunkProcessor.write(SimpleChunkProcessor.java:294) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:217) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:77) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:407) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:331) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.14.jar:5.3.14]
    at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:273) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:82) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:375) [spring-batch-infrastructure-4.3.4.jar:4.3.4]
    at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215) [spring-batch-infrastructure-4.3.4.jar:4.3.4]
    at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:145) [spring-batch-infrastructure-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:258) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:208) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:152) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:137) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:320) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:149) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50) [spring-core-5.3.14.jar:5.3.14]
    at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:140) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.launch.support.CommandLineJobRunner.start(CommandLineJobRunner.java:378) [spring-batch-core-4.3.4.jar:4.3.4]
    at org.springframework.batch.core.launch.support.CommandLineJobRunner.main(CommandLineJobRunner.java:582) [spring-batch-core-4.3.4.jar:4.3.4]
Caused by: oracle.jdbc.OracleDatabaseException: ORA-01722: invalid number
0 Answers
Related