SpringIntegration - 如果满足条件,如何运行2个查询

时间:2018-01-15 13:26:26

标签: java spring-integration

如果满足selector-expression,我们如何运行两个查询? 我的目标是  •从一个表中删除一行,然后  •在另一行中插入一行。

<int:recipient channel="myChannel" 
       selector-expression="(payload.getValueForVariable('thingA') = 'this_value')"
    />

<int-jdbc:outbound-channel-adapter
    channel="myChannel" id="myAdapter"
    data-source='myDataSource' sql-parameter-source-factory="myRequestSource"
    query="INSERT INTO realtime.table1(a_id,  b_id)   
                                     VALUES(:a_id, :b_id)">
</int-jdbc:outbound-channel-adapter>

在上面,我有一个INSERT查询;现在我想知道如果满足这个条件,我怎么能运行又一个查询,例如:

query="DELETE FROM realtime.table2(a_id,  b_id) WHERE a_id = :a_id">

我还没有在网上找到答案,我理想的是要避免重复整个街区。

1 个答案:

答案 0 :(得分:1)

您可以将myChannel作为发布 - 订阅频道,并为上述DELETE添加一个jdbc:outbound-channel-Adapter:

https://docs.spring.io/spring-integration/docs/5.0.0.RELEASE/reference/html/messaging-channels-section.html#channel-implementations-publishsubscribechannel