奇怪的是,当“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