teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

typo

2021/07/20 00:55

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  `requestkbn IN(CAST(:requestkbn AS INTEGER)))`の部分は、requestkbnに対応する値がひとつのときは`requestkbn IN(CAST(? AS INTEGER)))`となり、requestkbnに対応する値がふたつあると`requestkbn IN(CAST(?, ? AS INTEGER)))`となる。これは、ログ出力の結果から。
6
6
 
7
+ エラーメッセージにもそのように出力されている`... requestkbn IN(CAST(?, ? AS INTEGER))) order by ?]; nested exception is org.postgresql.util.PSQLException`
8
+
7
9
  `Set<Integer> rkKbnSet = new HashSet<>();`ということなので、設定する値はInteger型。であれば、キャストは不要なのでは?
8
10
 
9
11
  だから`requestkbn IN(:requestkbn)`とすればいいのではないかと。

1

修正

2021/07/20 00:54

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -1,1 +1,9 @@
1
- rkKbnSet の要素数がふたつあるなら、 `requestkbn IN(CAST(:requestkbn AS INTEGER)))` の部分を `requestkbn IN(CAST(:aa AS INTEGER), CAST(:bb AS INTEGER)))` となるようなSQL文を組み立てて、値はの設定を `.addValue("aa", rkKbnSet.get(0)).addValue("bb", rkKbnSet.get(1))` となるようにすればいいのでは。
1
+ ~~rkKbnSet の要素数がふたつあるなら、 `requestkbn IN(CAST(:requestkbn AS INTEGER)))` の部分を `requestkbn IN(CAST(:aa AS INTEGER), CAST(:bb AS INTEGER)))` となるようなSQL文を組み立てて、値はの設定を `.addValue("aa", rkKbnSet.get(0)).addValue("bb", rkKbnSet.get(1))` となるようにすればいいのでは。~~
2
+
3
+ 上記は取り消し。内容を訂正します。
4
+
5
+ `requestkbn IN(CAST(:requestkbn AS INTEGER)))`の部分は、requestkbnに対応する値がひとつのときは`requestkbn IN(CAST(? AS INTEGER)))`となり、requestkbnに対応する値がふたつあると`requestkbn IN(CAST(?, ? AS INTEGER)))`となる。これは、ログ出力の結果から。
6
+
7
+ `Set<Integer> rkKbnSet = new HashSet<>();`ということなので、設定する値はInteger型。であれば、キャストは不要なのでは?
8
+
9
+ だから`requestkbn IN(:requestkbn)`とすればいいのではないかと。