如何在 JdbcPollingChannelAdapter 更新参数上设置非缓存 SqlParameterSource
How to set non-caching SqlParameterSource on JdbcPollingChannelAdapter update parameters
在 JdbcPollingChannelAdapter
中,我想我了解如何使用 ExpressionEvaluatingSqlParameterSourceFactory
class 的 createParameterSourceNoCache()
方法来获得非缓存 SqlParameterSource
对象,可以通过其 setSelectSqlParameterSource()
方法应用于 JdbcPollingChannelAdapter
的 select 参数。
然而,当谈到更新参数时,我只看到可以通过 SqlParameterSourceFactory
通过 setUpdateSqlParameterSourceFactory()
方法设置更新参数。据我所知,无法将工厂设置为非缓存,只能调用工厂的非缓存创建方法来获取非缓存源对象。
我需要更新参数作为随时间变化的动态计算的自定义日期的结果。我有一个动态计算结果的静态方法,我希望我可以在 JdbcPollingChannelAdapter
上使用 SpEL 以与 select 参数相同的方式动态评估更新参数。这可能吗?
您可以扩展它并仍然以常规方式将其注入 JdbcPollingChannelAdapter
:
public class NoCacheExpressionEvaluatingSqlParameterSourceFactory
extends ExpressionEvaluatingSqlParameterSourceFactory {
@Override
public SqlParameterSource createParameterSource(Object input) {
return createParameterSourceNoCache(input);
}
}
在 JdbcPollingChannelAdapter
中,我想我了解如何使用 ExpressionEvaluatingSqlParameterSourceFactory
class 的 createParameterSourceNoCache()
方法来获得非缓存 SqlParameterSource
对象,可以通过其 setSelectSqlParameterSource()
方法应用于 JdbcPollingChannelAdapter
的 select 参数。
然而,当谈到更新参数时,我只看到可以通过 SqlParameterSourceFactory
通过 setUpdateSqlParameterSourceFactory()
方法设置更新参数。据我所知,无法将工厂设置为非缓存,只能调用工厂的非缓存创建方法来获取非缓存源对象。
我需要更新参数作为随时间变化的动态计算的自定义日期的结果。我有一个动态计算结果的静态方法,我希望我可以在 JdbcPollingChannelAdapter
上使用 SpEL 以与 select 参数相同的方式动态评估更新参数。这可能吗?
您可以扩展它并仍然以常规方式将其注入 JdbcPollingChannelAdapter
:
public class NoCacheExpressionEvaluatingSqlParameterSourceFactory
extends ExpressionEvaluatingSqlParameterSourceFactory {
@Override
public SqlParameterSource createParameterSource(Object input) {
return createParameterSourceNoCache(input);
}
}