Spring Batch DataReader 在读取项目集合末尾返回额外的空对象?
我正在使用 Spring Batch - 使用数据读取器加载项目列表。对于我的每个读者来说,他们都在列表末尾返回一个额外的空对象。
有人见过这个吗?我做错了什么?
I'm using Spring batch - using datareaders to load up lists of items. For each of my readers, they all return an extra null object on the end of the list.
Has anybody seen this before? What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是正常行为。
读取器停在空元素上。
但要找到空元素,就必须找到它。
结果,发出了 null 元素,但它将是最后一个元素,并且不会调用 writer。
It's the normal behavior.
A reader stops on a null element.
But to find a null element, you must find it.
As a consequence, the null element is issued, but it will the last one and the writer won't be called.
听起来您正在从
ItemReader
实现read()
方法http://static.springsource.org/ spring-batch/apidocs/org/springframework/batch/item/ItemReader.html
你想要做的是实现
readCursor(ResultSet rs, int currentRow)
方法JdbcCursorItemTeader - 这将阻止此行为。http://static.springsource。 org/spring-batch/apidocs/org/springframework/batch/item/database/JdbcCursorItemReader.html
It sounds like you were implementing the
read()
method from theItemReader
http://static.springsource.org/spring-batch/apidocs/org/springframework/batch/item/ItemReader.html
What you want to do is implement the
readCursor(ResultSet rs, int currentRow)
method from theJdbcCursorItemTeader
- this will stop this behaviour.http://static.springsource.org/spring-batch/apidocs/org/springframework/batch/item/database/JdbcCursorItemReader.html