spring-batch - Spring Batch JdbcCursorItemReader moving cursor backward
问题描述
In spring batch JdbcCursorItemReader
is ResultSet
processing is TYPE_FORWARD_ONLY
.
In my case, I need to point the cursor to 1 row back, hence I want to set TYPE_SCROLL_SENSITIVE
, so that I can go back.
Any idea how to do it in spring batch or some workaround?
<bean id="databaseItemReader"
class="org.springframework.batch.item.database.JdbcCursorItemReader">
<property name="dataSource" ref="dataSource" />
<property name="sql"
value="select * from document udd, field uff where uff.docid = udd.docid AND uff.field_name IN ('address','contractNb','city','locale','login','mobile','name','phone') ORDER BY udd.docid, uff.field_name ASC" />
<property name="rowMapper">
<bean class="com.migration.springbatch.UDocumentResultRowMapper" />
</property>
<property name="verifyCursorPosition" value="false"/>
</bean>
解决方案
ItemReader
Spring Batch中 an 的合约只是转发的,JdbcCursorItemReader
根据这个合约执行(因此是TYPE_FORWARD_ONLY
)。因此,一旦打开光标,就不可能将其倒回。
也就是说,当底层资源是事务性的(例如数据库或 JMS 队列)时,调用 read 可能会在回滚场景中的后续调用中返回相同的逻辑项。
请在此处的文档中找到更多详细信息:https ://docs.spring.io/spring-batch/4.0.x/reference/html/readersAndWriters.html#itemReader
推荐阅读
- node.js - nodejs oracledb externalAuth(使用oracle钱包)
- python - 如何使用最大值填充具有重复索引的图像
- html - 订单列表标记
- php - 当产品在 WooCommerce 中“有货”时,product_visibility 分类是否设置为 false?
- android - 无法使用按钮和复选框从登录活动中的共享首选项中恢复身份验证用户数据
- python - 避免使用 re.sub 将替换模式解释为正则表达式
- r - R:在不同长度且充满 NaN 的 data.frame 中自动偏移 - 确定 df 中每个单元格的最接近的非 NaN 值
- angular - 无法从应用程序内启动 Angular 应用程序的第二个实例
- python - Model.fit() 正在返回“此模型尚未构建。首先通过调用 `build()` 或使用一些数据调用 `fit()` 来构建模型”
- asp.net-core - 在 asp.net core 2.0 中,会话在 15-20 分钟后过期。任何解决方案都不起作用