96.5. プロデューサでの式パラメーターの使用
Camel 2.16.1 以降では、Simple 式も使用できます。これにより、メッセージボディーで OGNL のような表記を使用できます。ここでは、getLicense および getMinimum メソッドがあることを前提としています。
@NAME(projects)
SELECT *
FROM projects
WHERE license = :${body.license} AND id > :${body.minimum}
ORDER BY id
96.5.1. コンシューマーでの式パラメーターの使用 リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.23 以降で利用可能
ElSql コンポーネントをコンシューマーとして使用する場合、式パラメーター (Simple 言語) を使用して、Bean でメソッドを呼び出して ID や日付などを取得するなど、動的クエリーパラメーターを作成することもできるようになりました。
たとえば、以下のサンプルでは、Bean myIdGenerator で nextId メソッドを呼び出します。
@NAME(projectsByIdBean)
SELECT *
FROM projects
WHERE id = :${bean#myIdGenerator.nextId}
上記の Bean 構文では、単純な式で : の代わりに # を使用する必要があることに注意してください。これは、コロンでパラメーターを区切る Spring クエリーパラメーターパーサーが使用されているためです。また、Spring クエリーパーサーはクエリーごとに Bean を 2 回呼び出すことに注意してください。
また、Bean には次のメソッドがあります。
public static class MyIdGenerator {
private int id = 1;
public int nextId() {
// spring will call this twice, one for initializing query and 2nd for actual value
id++;
return id / 2;
}
メッセージボディーとヘッダーを持つ既存の Exchange がないことに注意してください。したがって、コンシューマーで使用できる単純な式は、この例のように Bean メソッドを呼び出すのに最も役立ちます。