Cayenne を使用した IN 句内の整数のリストのバインド
-
21-08-2019 - |
質問
次のように整数のリストを SQLTemplate IN 句にバインドしようとしています。
SELECT * FROM table1 WHERE id IN ( #bind($idList) );
ID の文字列があります:
idList = "1, 2, 3, 4";
バインドを正常に動作させることができません。チェックする ID のリストとして文字列を渡しても値が返されません。
これを実行するには文字列連結を使用する必要があります (理想的ではありません)。
適切にバインドする方法について何かアイデアはありますか?
前もって感謝します。
(私は Java/Cayenne/Postgres を使用しており、パラメータとして渡された idList を使用してクエリを実行しています。これは簡略化された例であり、実際に実行している SQL ではありません)。
アップデート やり方が分かりました。以下に答えてください。
解決
質問を投稿するとすぐにその方法がわかりました。
文字列の代わりに、次のように整数のリストを使用します。
List<Integer> ids = {1,2,3,4,5} (pseudocode)
バインドを行うには、次のものが必要です。
SELECT * FROM table1 WHERE id IN ( #bind($idList, 'INTEGER') );
その後、通常どおりパラメータを渡すと機能します。
所属していません StackOverflow