304.9.3. 動的値での IN クエリーの使用


Camel 2.17 から利用可能

Camel 2.17 以降では、SQL プロデューサーは IN 値が動的に計算される IN ステートメントで SQL クエリーを使用できます。たとえば、メッセージボディーやヘッダーなどです。

IN を使用するには、以下を行う必要があります。

  • パラメーター名 の前に以下を付けます
  • パラメーターの周りの追加 ()

例として、これが改善されています。以下のクエリーが使用されます。

-- this is a comment
select *
from projects
where project in (:#in:names)
order by id

以下のルートで以下を行います。

from("direct:query")
    .to("sql:classpath:sql/selectProjectsIn.sql")
    .to("log:query")
    .to("mock:query");

次に IN クエリーはキー名を持つヘッダーを動的値で使用することができます。以下に例を示します。

// use an array
template.requestBodyAndHeader("direct:query", "Hi there!", "names", new String[]{"Camel", "AMQ"});


// use a list
List<String> names = new ArrayList<String>();
names.add("Camel");
names.add("AMQ");

template.requestBodyAndHeader("direct:query", "Hi there!", "names", names);


// use a string separated values with comma
template.requestBodyAndHeader("direct:query", "Hi there!", "names", "Camel,AMQ");

クエリーを外部化する代わりにエンドポイントで指定することもできます(外部化により SQL クエリーの管理が容易になります)。

from("direct:query")
    .to("sql:select * from projects where project in (:#in:names) order by id")
    .to("log:query")
    .to("mock:query");

 

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る