gpt4 book ai didi

stored-procedures - 如何将输入参数值动态更改为存储过程入站 channel 适配器

转载 作者:行者123 更新时间:2023-12-04 07:49:40 25 4
gpt4 key购买 nike

我需要调用一个在特定窗口期间收集数据的存储过程。例如,我发送一个代表现在的时间戳和一个 15 分钟的窗口,它将返回最近 15 分钟内的所有数据。每次调用此过程时,我都需要更新表示现在的时间戳,以避免使用旧数据。

有什么办法可以实现吗?

我对下面的“now”bean 的尝试失败了,因为即使该 bean 是原型(prototype),它的值也只会在创建 channel 适配器时检索一次。

我目前配置的匿名 stored-proc-inbound-channel-adapter 如下:

<int-jdbc:stored-proc-inbound-channel-adapter
channel="storedProcOutboundChannel" stored-procedure-name="dataWindowRetrieval"
data-source="dataSource" auto-startup="true" id=""
ignore-column-meta-data="false" is-function="false"
skip-undeclared-results="true" return-value-required="false">

<int:poller fixed-rate="60" time-unit="SECONDS"></int:poller>
<int-jdbc:parameter name="CurrentDateTime" type="java.sql.Timestamp" value="#{now}" />
<int-jdbc:parameter name="MinuteOffset" type="java.lang.Integer" value="3" />
<int-jdbc:parameter name="SomeOtherParameter" type="java.lang.Integer" value="4" />
<int-jdbc:parameter name="YetAnotherParameter" type="java.lang.Integer" value="15" />
<int-jdbc:returning-resultset name="theResults" row-mapper="org.springframework.jdbc.core.ColumnMapRowMapper" />
</int-jdbc:stored-proc-inbound-channel-adapter>

<bean id="now" scope="prototype" class="java.sql.Timestamp">
<constructor-arg value="#{ T(java.lang.System).currentTimeMillis()}" />
</bean>

最佳答案

使用 expression="@now" 代替 value

该值仅在初始化时计算。

关于stored-procedures - 如何将输入参数值动态更改为存储过程入站 channel 适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22716042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com