Je reçois un message contenant divers éléments. À partir de ce message, je génère plusieurs instructions SQL et les ajoute dans une liste. Dans mon implémentation précédente, ce n'était pas un problème et j'exécutais les instructions une par une mais je ne pouvais pas trouver s'il était possible ou non de faire la même chose avec apache camel. Ce que je demande simplement, est-il possible d'exécuter plusieurs instructions SQL avec Apache Camel?

Quelque chose comme ci-dessous? PS: Chaque déclaration est généralement différente les unes des autres.

`from(...).process(new Processor()).to(THIS IS WHERE MULTIPLE STATEMENTS GOES I ASSUME)`

Merci d'avance.

1
Bleach 3 sept. 2020 à 16:25

2 réponses

Meilleure réponse

Utilisez Recipient List EIP pour définir dynamiquement la liste des points finaux cibles à Durée.

Modifiez légèrement votre Processor et préparez List de points de terminaison à l'en-tête.

exchange.getIn().setHeader("MyListOfStatements", Arrays.asList(
    "sql:INSERT something INTO somewhere", 
    "sql:INSERT anything INTO elsewhere"
));

Ensuite, utilisez cet en-tête comme Expression dans recipientList

from(...).process(new Processor()).recipientList(header("MyListOfStatements"));
1
Bedla 4 sept. 2020 à 00:59

Vous pouvez utiliser l'eip de boucle de camel et chaque boucle vous pouvez utiliser l'index de boucle pour récupérer l'instruction sql de la liste et l'exécuter.

0
Sneharghya Pathak 3 sept. 2020 à 15:41