springbatch 同步数据库的问题

图片说明
在使用springboot + batch同步数据库表到另一个表上面去的时候,chunk的size最多只能设置10,多了就会报主键重复,首先说明的是一开始查出来的数据主键是没有重复的,就是mysql官网的员工表。所以我把要导入数据的表的主键去掉,发现可以几百条批量导入,但是插入的几乎都是重复的,也是10条10 条的重复,batch读的原理是什么,设置10 条插入一次太慢了,求给个解决方案。
如图:

3个回答

看你现象貌似是mybatis分页的游标有点问题吧,你可以打断点看看,是不是process和writer里都是重复的,证明你读出来的就是重复的

weixin_42062762
weixin_42062762 我debug到后面就动不了,但是我发现他真的出现了pagesize=10,于是我在mapper后面加了limit 400; 还真可以了,貌似这样将它的默认10给覆盖掉了,也不是每次400,而是几十几十把,不稳定,感觉还是慢啊,还不如直接查出来在插入
3 个月之前 回复
weixin_42062762
weixin_42062762 我依赖的分页插件,但是没有用分页啊
3 个月之前 回复

你使用batch的时候,是有缓存的,每次插入后,需要清除缓存。

weixin_42062762
weixin_42062762 老哥 不是吧 我将chunk设置为10 它不报错,也没有重复的啊,但是将chunk设置为400,它就会报主键重复了。一次插入400 中都是10条10条的重复
3 个月之前 回复

id=10011这条记录重复了,是不是数据库里面已经有了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐