Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing value to sql IN using JdbcTemplate

I am trying to pass List in sql IN but I am getting invalid column type error. Here my SQL looks like:

String partyIdSql = "select party_id from myPartySearch where partyId = :id"
List<Long> partyIdList = new JdbcTemplate(dataSource)
  .queryForList(partyIdSql, new Object[] { id }, Long.class);


String currentRecordSql = "select * from myTable where someCol IN (:colVal)";
Map<String,Object>  params = new HashMap<String, Object>();
params.put("partyIdList", partyIdList);

memberInfo =  new JdbcTemplate(dataSource)
    .query(currentRecordSql , 
           new Object[] { params }, 
           new BeanPropertyRowMapper<MyDto>(MyDto.class));
like image 371
αƞjiβ Avatar asked May 17 '26 15:05

αƞjiβ


1 Answers

Try this:

   Map<String,Object> params = Collections.singletonMap("fields", partyIdList );    
    namedParameterJdbcTemplate.query("select * from myTable where someCol IN (:fields)", new Object[] { params }, new BeanPropertyRowMapper<MyDto>(MyDto.class));
like image 79
Sezin Karli Avatar answered May 20 '26 04:05

Sezin Karli