如何在JdbcPollingChannelAdapter更新参数

时间:2018-04-11 20:41:44

标签: spring-integration spring-el

JdbcPollingChannelAdapter中,我想我了解如何使用createParameterSourceNoCache()类的ExpressionEvaluatingSqlParameterSourceFactory方法来获取非缓存SqlParameterSource对象,通过JdbcPollingChannelAdapter方法应用于setSelectSqlParameterSource()的选择参数。

但是,在更新参数时,我只看到可以通过SqlParameterSourceFactory方法通过setUpdateSqlParameterSourceFactory()方法设置更新参数。据我所知,不可能将工厂设置为非缓存,只能调用工厂的非缓存create方法来获取非缓存源对象。

我需要更新参数是动态计算的自定义日期随时间变化的结果。我有一个动态计算结果的静态方法,我希望我可以在JdbcPollingChannelAdapter上使用SpEL以与select参数相同的方式动态评估update参数。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以对其进行扩展,并将其定期注入JdbcPollingChannelAdapter

public class NoCacheExpressionEvaluatingSqlParameterSourceFactory 
        extends ExpressionEvaluatingSqlParameterSourceFactory {

    @Override
    public SqlParameterSource createParameterSource(Object input) {
        return createParameterSourceNoCache(input);
    }

}