実現したいこと
SpringでIN句で条件を指定しましたが、結果がNULLとなっていますのでそのバグを解消したいです。
発生している問題・分からないこと
List<KintaiList> kintaiList = jdbc.query(sql, rowMapper, args);
で検索した時に結果が無い(NULLとなっています。)
該当のソースコード
Java
1 @PostMapping("/searchAll") 2 public String searchEach(@ModelAttribute SyainSV SyainSVData 3 , Kihon1 kihon1, Syain syain, Model model) { 4 5 String syain_id1 = SyainSVData.getSyain_id1(); 6 String syain_id2 = SyainSVData.getSyain_id2(); 7 String syain_id3 = SyainSVData.getSyain_id3(); 8 String syain_id4 = SyainSVData.getSyain_id4(); 9 String syain_id5 = SyainSVData.getSyain_id5(); 10 List<String> array = new ArrayList(Arrays.asList(syain_id1, syain_id2, syain_id3, syain_id4, syain_id5)); 11 array.removeAll(Arrays.asList("", null)); 12 13 String where_str = "'"; 14 for (int i = 0; i < array.size();i++) { 15 16 if (!StringUtils.isEmpty(array.get(i))) { 17 where_str = where_str + array.get(i); 18 where_str = where_str + "'"; 19 } 20 21 if(i == array.size() - 1) { 22 break; 23 } 24 where_str = where_str + ", '"; 25 } 26 27 StringBuilder sql_buil = new StringBuilder(); 28 sql_buil.append("SELECT syain.syain_id, kihon1.kihon_name, kihon1.mei_st" 29 + ", kihon1.mei_ed, kihon1.kinmu_st, kihon1.kinmu_ed "); 30 sql_buil.append("FROM syain "); 31 sql_buil.append(" INNER JOIN kihon1 "); 32 sql_buil.append(" ON kihon1.kihon_id = syain.syain_id "); 33 if (!StringUtils.isEmpty(where_str)) { 34 sql_buil.append("WHERE syain.syain_id IN (?)"); 35 } 36 String sql = sql_buil.toString(); 37 Object[] args = new Object[] {where_str}; 38 BeanPropertyRowMapper<KintaiList> rowMapper = BeanPropertyRowMapper.newInstance(KintaiList.class); 39 List<KintaiList> kintaiList = jdbc.query(sql, rowMapper, args); 40 model.addAttribute("list", kintaiList); 41 42 return "index"; 43 }
Java
1package jp.winschool.spring.sample09; 2 3import lombok.Data; 4 5@Data 6public class KintaiList { 7 private String syain_id; 8 private String kihon_name; 9 private String mei_st; 10 private String mei_ed; 11 private String kinmu_st; 12 private String kinmu_ed; 13} 14
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
IN句に設定した条件がwhere_str=1,2でもwhere_str='1','2'でも検索できませんでした。
補足
特になし
回答1件
あなたの回答
tips
プレビュー