1

奇怪的是,当“REPLACE SELECT”之前有“SET FOREIGN_KEY_CHECKS”时,SQL 组件会将 CamelSqlUpdateCount 标头值重置为零。

我在标题图上使用观察者在调试模式下运行。是的,该值一开始是正确的,但在此过程中设置为零。

这种情况不会发生在 JDBC 组件上,只会发生在 SQL 组件上。不幸的是,JDBC 组件不能在“from”中使用。

工作.sql

REPLACE INTO TABLE_B
SELECT * FROM TABLE_A;
SET FOREIGN_KEY_CHECKS = 1;

non_working.sql

SET FOREIGN_KEY_CHECKS = 0;
REPLACE INTO TABLE_B
SELECT * FROM TABLE_A;
SET FOREIGN_KEY_CHECKS = 1;

工作路线

.enrich("sql:working.sql") // CamelSqlUpdateCount header is set e.g. to 500
.process(MyClass::operation) // CamelSqlUpdateCount is still 500

非工作路线

.enrich("sql:non_working.sql") // CamelSqlUpdateCount header is set e.g. to 500
.process(MyClass::operation) // CamelSqlUpdateCount has been lost, it is zero

骆驼版 3.12.0

4

0 回答 0