【发布时间】:2017-06-06 06:44:35
【问题描述】:
我收到带有字符串有效负载的传入消息,但数据库(我无法控制)将此数据记录为 BLOB。有没有办法让 Spring Integration 将字符串按摩到 CLOB 或 BLOB 中?
我有一个出站通道适配器进行数据库插入,它(简化)看起来像:
<int-jdbc:outbound-channel-adapter channel="inboundTraffic"
datasource="localDataSource"
query="insert into MESSAGES (DATA, SAVE_DATE)
values (:payload, :saveDate)"
sql-parameter-source-factory="spelSource" />
<bean id="spelSource" class="o.s.i.j.ExpressionEvaluatingSqlParameterSourceFactory">
<property name="parameterExpressions">
<map>
<entry key="payload" value="payload" />
<entry key="saveDate" value="new java.util.Date()" />
</map>
</property>
</bean>
但是我在负载上得到了 SQLException:
ORA-01461 只能绑定 LONG 值,以便插入到 LONG 列中。
频道。文档的 18 有一个 blob 示例,将整个内容重写为服务激活器而不是 oubound-channel-adapter,并从文件流式传输......这似乎有点过头了,但 BLOB 和 CLOBS 应该是这样的在框架内完成?
感谢您的帮助!
【问题讨论】:
标签: spring oracle spring-integration