spring 集成 5.5.x 如何使用 mysql 作为消息存储
how can spring integration 5.5.x use mysql as message store
我正在使用 Mysql 作为消息存储数据库,刚刚尝试升级到 spring 集成 5.5.5,但发现架构已更改,
在 INT_MESSAGE_GROUP table 中需要一个 CONDITION
列,尽管我可以通过在 CONDITION
周围添加反引号来创建 table,但在 sql 中JdbcMessageStore.java
GET_GROUP_INFO("SELECT COMPLETE, LAST_RELEASED_SEQUENCE, CREATED_DATE, UPDATED_DATE, CONDITION" +
" from %PREFIX%MESSAGE_GROUP where GROUP_KEY=? and REGION=?")
不能用?
任何解决方法?
是的,我现在明白了。看起来 condition
是 MySQL 中的保留字:Is condition considered a special word in mySQL?。不知道我是怎么错过的,但这被认为是一个错误,必须从框架的角度真正修复。
解决方法取决于您使用那个 JdbcMessageStore
做什么。如果您从队列通道使用它,那么最好查看 JdbcChannelMessageStore
:https://docs.spring.io/spring-integration/docs/current/reference/html/jdbc.html#jdbc-message-store-channels.
如果你真的与聚合器打交道,那么你必须扩展 JdbcMessageStore
并覆盖 getGroupMetadata()
和 setGroupCondition()
,其中 CONDITION
用于 [=41] =] 语句。
或者看看其他一些不保留 CONDITION
字的数据库供应商!
我将通过 GROUP_CONDITION
字来修复它...
更新
框架代码的修复在这里:https://github.com/spring-projects/spring-integration/pull/3687. The next Spring Integration 5.5.7
will be released like this: https://github.com/spring-projects/spring-integration/milestone/80。正好赶上下一个 Spring 引导版本!
我正在使用 Mysql 作为消息存储数据库,刚刚尝试升级到 spring 集成 5.5.5,但发现架构已更改,
在 INT_MESSAGE_GROUP table 中需要一个 CONDITION
列,尽管我可以通过在 CONDITION
周围添加反引号来创建 table,但在 sql 中JdbcMessageStore.java
GET_GROUP_INFO("SELECT COMPLETE, LAST_RELEASED_SEQUENCE, CREATED_DATE, UPDATED_DATE, CONDITION" +
" from %PREFIX%MESSAGE_GROUP where GROUP_KEY=? and REGION=?")
不能用? 任何解决方法?
是的,我现在明白了。看起来 condition
是 MySQL 中的保留字:Is condition considered a special word in mySQL?。不知道我是怎么错过的,但这被认为是一个错误,必须从框架的角度真正修复。
解决方法取决于您使用那个 JdbcMessageStore
做什么。如果您从队列通道使用它,那么最好查看 JdbcChannelMessageStore
:https://docs.spring.io/spring-integration/docs/current/reference/html/jdbc.html#jdbc-message-store-channels.
如果你真的与聚合器打交道,那么你必须扩展 JdbcMessageStore
并覆盖 getGroupMetadata()
和 setGroupCondition()
,其中 CONDITION
用于 [=41] =] 语句。
或者看看其他一些不保留 CONDITION
字的数据库供应商!
我将通过 GROUP_CONDITION
字来修复它...
更新
框架代码的修复在这里:https://github.com/spring-projects/spring-integration/pull/3687. The next Spring Integration 5.5.7
will be released like this: https://github.com/spring-projects/spring-integration/milestone/80。正好赶上下一个 Spring 引导版本!