我試圖將數據從一個數據源複製到另一個,用於Ibaitsbatchitemwriter類來這樣做。紀錄是得到了插入到目標數據庫,但該批次得到如下空指針異常的結束,Spring批處理 - Ibatis批處理項作家 - 空指針異常
顯示java.lang.NullPointerException 在org.springframework.batch.item.database.IbatisBatchItemWriter.write(IbatisBatchItemWriter.java:142) 在org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:175) 在org.springframework.batch.core.step.item.SimpleChunkProcessor.doWrite(SimpleChunkProcessor.java:151) 在org.springframework.batch.core.step.item.SimpleChunkProcessor.write(SimpleChunkProcessor.java:274) 在org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:199) 的組織。 springframework的.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:75)
但添加屬性assertupdates = fales後,我沒有收到錯誤,然後數據也被複制。但我不相信與空指針錯誤,看起來像我缺少的東西在我的配置左右。
我使用spring infra 2.2.4和ibatis版本2.3.0。
<bean id="targetWriterDepAcct03"
class="org.springframework.batch.item.database.IbatisBatchItemWriter">
<property name="sqlMapClient" ref="targetDatabaseMap" />
<property name="statementId" value="DepositAccountSqlMap.updtDepositAccount" />
<property name="assertUpdates" value="false" />
</bean>
<batch:job id="baseJob" abstract="true" restartable="true"
job-repository="jobRepository" />
<batch:job id="TboltSyncBatchJob">
<batch:step id="CheckForConfigFileStep">
<batch:tasklet ref="CheckForConfigFile" />
<batch:next on="COMPLETED" to="SyncDataDepAcct03" />
<batch:end on="FAILED" />
</batch:step>
<batch:step id="SyncDataDepAcct03">
<batch:tasklet transaction-manager="transactionManager">
<batch:chunk reader="sourceReaderForDepAcct03" writer="targetWriterDepAcct03"
commit-interval="1000" />
</batch:tasklet>
</batch:step>
有什麼想法?