У меня есть две вставки, которые я хочу иметь под транзакционным контролем. Если один из них не работает, другой не должен быть выполнен/вставлен. Это прекрасно работает, когда делать это прямо в MySQL, как этотМенеджер по продажам Camel sql
START TRANSACTION;
INSERT INTO table (field) VALUES (value);
INSERT INTO table2 (field) VALUES (value);
COMMIT;
Теперь с помощью верблюда я уже пробовал
<to uri="sql:START TRANSACTION; INSERT INTO table (field) VALUES (value);INSERT INTO table2 (field) VALUES (value);COMMIT;"/>
который производит SQL синтаксической ошибки. Вторая вещь, которую я попробовал это
<to uri="sql:START TRANSACTION"/>
<to uri="sql:INSERT INTO table (field) VALUES (value)"/>
<to uri="sql:INSERT INTO table2 (field) VALUES (value)"/>
<to uri="sql:COMMIT"/>
который работает, но если одна вставка терпит неудачу другой все еще выполняется и вставили.
Я также нашел это http://camel.apache.org/transactional-client.html, но я использую план, и эти примеры, похоже, только для весны. Поэтому, если у кого-нибудь есть хороший пример, делающий это с планом верблюда, это было бы здорово.
Может ли кто-нибудь помочь мне сделать это на верблюде?
Как это работает? Я имею в виду, что ваш uri - это просто оператор SQL. Компонент не связан с ним. Не могли бы вы разместить весь маршрут, т. Е. Blueprint.xml. – Namphibian
Ой, сэр, забыл «sql:» - добавил теперь – Milla
ich danke Ihnen, dass eine Menge helfen, если я правильно помню свой Deutsch. – Namphibian