Spring integration Spring集成JdbcMessageHandler-包含多个项目的有效负载
如何处理有效负载中的多条消息 我尝试了以下方法:Spring integration Spring集成JdbcMessageHandler-包含多个项目的有效负载,spring-integration,spring-jdbc,Spring Integration,Spring Jdbc,如何处理有效负载中的多条消息 我尝试了以下方法: @Bean @ServiceActivator(inputChannel = "outChannel") public MessageHandler jdbcMessageHandler() { JdbcMessageHandler jdbcMessageHandler = new JdbcMessageHandler(getDataSource(), getSql()); jdbcMessageHand
@Bean
@ServiceActivator(inputChannel = "outChannel")
public MessageHandler jdbcMessageHandler() {
JdbcMessageHandler jdbcMessageHandler = new JdbcMessageHandler(getDataSource(), getSql());
jdbcMessageHandler.setPreparedStatementSetter((ps, message) -> {
Item[] items = ((Item[]) message.getPayload());
Arrays.stream(items).forEach(item -> {
ps.setString(1, item.getName());
}
ps.addBatch();
}
return jdbcMessageHandler;
}
但只有最后一条消息被多次插入。
(注意:对bean使用java配置而不是xml)请参阅文档:
如果请求消息的负载是一个Iterable
实例,则JdbcMessageHandler
执行jdbcooperations.batchUpdate()
Iterable
,不是我在示例中看到的数组。因此,考虑将数组转换成<代码>列表< />代码,并且应该同时处理几个项目的批处理更新。