Spring integration ReplyRequiredException尝试从<;获取数据;int jdbc:出站网关>;?

Spring integration ReplyRequiredException尝试从<;获取数据;int jdbc:出站网关>;?,spring-integration,Spring Integration,我想定义一个 使用查询和不使用更新从数据库检索数据。然后我想使用intjdbc:outboundgateway作为Service.findSomeData()接口方法的实现。从接口实现检索到的数据用于我的自定义transformer的CheckService类。请参阅下面的配置: <int:service-activator method=“performCheck”> <bean class=“com.example.service.CheckService”

我想定义一个
使用
查询
和不使用
更新
从数据库检索数据。然后我想使用
intjdbc:outboundgateway
作为
Service.findSomeData()
接口方法的实现。从接口实现检索到的数据用于我的自定义transformer的
CheckService
类。请参阅下面的配置:

<int:service-activator method=“performCheck”>
       <bean class=“com.example.service.CheckService”
             c:service-ref=“service”
 </int:service-activator>

<int:gateway id=“service” service-interface=“com.example.service.Service”>
   <int:method name=“findSomeData” request-channel=“jdbcChan” reply-channel=“jdbcChanReply”/>
</int:gateway>

<int-jdbc:outbound-gateway request-channel=“jdbcChan”
                          data-source=“pooledDs” row-mapper=“dataRowMapper” reply-channel=“jdbcChanReply”>
   <int-jdbc:query>
       select some, data from some_table
   </int-jdbc:query>
我是做错了还是在最新的Spring集成JDBC中有一个bug?(对我来说,似乎连例子都没有了)

I

很久以前,我们将
requires reply
的默认值更改为
true
,但示例从未更新

assertThat(foo,is(not(empty()))

但是,当未收到任何结果时,
列表
null

编辑

但如果ResultSet为空,我希望列表为空而不是null

这不是它的工作原理

如果结果集为空,则返回
null
(因此是您看到的原始错误)

如果结果集有1个条目,则只返回该条目

Object payload = list;
if (list.isEmpty()) {
    return null;
}
if (list.size() == 1) {
    payload = list.get(0);
}
return payload;
否则将返回实体列表

Object payload = list;
if (list.isEmpty()) {
    return null;
}
if (list.size() == 1) {
    payload = list.get(0);
}
return payload;
永远都是这样,但我相信单对象与列表是错误的(如果
maxRows>1


默认情况下,
maxRows
为1,因此它在当时是有意义的;但是,如果
maxRows
为>1并且只返回1行,我认为它仍然应该是1的列表。应用程序不必检查结果的类型。它需要一个列表或单个对象(或null)

谢谢。我检查过了,如果你在数据库中添加一个人,它现在就可以工作了。但如果ResultSet为空,我希望列表为空,而不是
null