3

ここでは、動的な複数の顧客 ID をミュールの選択クエリに渡す必要があります。だから私は私の顧客IDを保持するコンマ区切りの文字列を思いついた例: String custid=1001,1002 .Groovy evalutorを使用して文字列値をJDBCクエリにフェッチしています.しかし、後に空のペイロードを受け取りますクエリを実行します。また、 String Custid = 1001のような単一の値の文字列についても、望ましい結果が得られています。Mule では、 '1001,1002' のような文字列に一重引用符を追加すると、この問題が発生しますか?

この問題を解決するために私を助けてください。また、この問題を解決するために従うことができる他のアプローチがあるかどうか教えてください。

ここに私のコードスニペットがあります:

<jdbc:query key="getCustID" value="SELECT CUSTID,CUSTTYPE FROM CUSTINFO WHERE CUSTID IN  (#[groovy:payload.custid]) "/>
4

1 に答える 1

1

Muleは#[groovy:payload.custid]、バインドされたパラメーターと同様に式を置き換えるため、機能しません。コマで区切られた値は、単一のパラメーターとして置き換えられます。

私はあなたがやりたいことに対する素晴らしい解決策を持っていません。1つのアプローチは、クエリを使用する直前に、 JDBCコネクタqueriesマップですでに解決されているIDリストにクエリを登録することです。queries一意のクエリ名(UUIDなど)を生成して、現在のスレッドでのみ使用されるようにします。また、メモリリークを回避するために、使用後にマップから削除する必要があります。

これは非常にハッキーですが、うまくいけば他の誰かがより良い答えを持っているでしょう...

于 2012-07-11T17:34:59.813 に答える