繁体   English   中英

使用JdbcTemplate将值传递给sql IN

[英]Passing value to sql IN using JdbcTemplate

我试图在SQL IN中传递List但我收到无效的列类型错误。 这里我的SQL看起来像:

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

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM