Passing value to sql IN using JdbcTemplate

I am trying to pass List to sql IN, but I am getting invalid column type error. Here's 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));

      

+3


source to share


1 answer


Try the following:



   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));

      

+1


source







All Articles