SQL IN ステートメントで arraylist を渡そうとすると、文字列ではなくメモリ ロケーションとして渡されます。
SELECT Pid FROM details WHERE number IN (" + tempArrayList.toString().replaceAll("\\[(.*?)\\]", "$1") + ")" ;
しかし、問題の説明で述べたように、印刷されます
SELECT part_id FROM parts_details WHERE part_number IN ([Ljava.lang.Object;@7bb11784, [Ljava.lang.Object;@1ae369b7)
私はいくつかの代替案を試しました
- を使用して配列文字列を作成しました
StringUtils.Join(tempArrayList.iterator())
Arrays.toString(tempArrayList.get(0)).replaceAll("[\\[\\]]", "") + "','"