Spring integration JDBC入站适配器只检索一条记录而不是所有记录

Spring integration JDBC入站适配器只检索一条记录而不是所有记录,spring-integration,spring-integration-dsl,Spring Integration,Spring Integration Dsl,我使用以下jdbc入站适配器来检索消息。还有另一个activator监视通道并调用方法。然而问题是,ServiceActivator只获得一个“事件”,而不是全部。但是,查询应该是“选择*” 我还尝试在适配器中添加max rows=“0”,但没有帮助。进一步调试后,在创建ServiceActivationHandler时,结果发现canProcessMessageList的值为false。因此,ServiceActivator只接收一个事件,而不是列表 这是我的activator的外观: p

我使用以下jdbc入站适配器来检索消息。还有另一个activator监视通道并调用方法。然而问题是,ServiceActivator只获得一个“事件”,而不是全部。但是,查询应该是“选择*”



我还尝试在适配器中添加max rows=“0”,但没有帮助。

进一步调试后,在创建ServiceActivationHandler时,结果发现canProcessMessageList的值为false。因此,ServiceActivator只接收一个事件,而不是列表

这是我的activator的外观:

public void doSomething(Event event)
{
  System.out.println("Processing event: " + event.getName());
}
更新了具有以下签名的activator,并已生效:

public void doSomething(Collection<Event> events){
    System.out.println("Processing event: " + events.size());
    for (Event event: events){
        System.out.print("***** " + event.getName());
    }
}
public void doSomething(收集事件){
System.out.println(“处理事件:+events.size());
对于(事件:事件){
System.out.print(“******”+event.getName());
}
}

也许您的
eventResultMapper
只返回游标中的第一项?您能否打开
org.springframework.integration
类别的DEBUG查看
JdbcPollingChannelAdapter
producing进一步调试了它。创建ServiceActivationHandler时,canProcessMessageList的值为false。因此,ServiceActivator只接收一个事件,而不是列表。激活器如下所示:public void doSomething(Event Event){System.out.println(“处理事件:“+Event.getName());}我可以看到queueChannel上有4条消息。我如何才能将此设置为真,以便activator接收所有4条消息。很高兴您自己解决了这个问题!你现在可以接受你自己的答案了。谢谢你。所以说我两天内不能接受,没关系。只要记住int,它将对这里的其他人有所帮助。
public void doSomething(Collection<Event> events){
    System.out.println("Processing event: " + events.size());
    for (Event event: events){
        System.out.print("***** " + event.getName());
    }
}