Java SQL Server即席查询将整数列表转换为varchar

Java SQL Server即席查询将整数列表转换为varchar,java,sql-server,Java,Sql Server,我使用的是这样的临时查询 SELECT MemberName FROM Member WHERE MemberNo IN (:memberNumberList) 然而,MemberNo是varchar列,memNumberList是nvarchar值的列表。当我使用单值时,我将整型变量转换为varchar,如下所示 SELECT MemberName FROM Member WHERE MemberNo = CONVERT(VARCHAR(10), :memberNumber) 如果我不

我使用的是这样的临时查询

SELECT MemberName 
FROM Member 
WHERE MemberNo IN (:memberNumberList)
然而,MemberNo是varchar列,memNumberList是nvarchar值的列表。当我使用单值时,我将整型变量转换为varchar,如下所示

SELECT MemberName
FROM Member
WHERE MemberNo = CONVERT(VARCHAR(10), :memberNumber)
如果我不转换变量,就会发生隐式转换。所以我想把memNumberList转换成varchar

有什么想法吗

下面是它的JAVA代码

MapSqlParameterSource param=新的MapSqlParameterSource(); 参数addValue(“memberNumberList”,memberNumberList)

试试看{
List List=jdbcTemplate.query(
“选择MemberName”+
“来自成员”+
“WHERE MemberNo IN(:memberNumberList)”,
参数,新BeanPropertyRowMapper(MemberInfo.class));
return list.stream().collect(Collectors.toMap(MemberInfo::getMemberNumber,Function.identity());
}捕获(数据访问异常){
抛出新成员异常(“搜索成员时出现问题(+“+e.getMessage()+”),e);
}
    try {
        List<MemberInfo> list = jdbcTemplate.query(
                " SELECT MemberName " +
                        " FROM Member " +
                        " WHERE MemberNo IN (:memberNumberList) ",
                param, new BeanPropertyRowMapper<>(MemberInfo.class));

        return list.stream().collect(Collectors.toMap(MemberInfo::getMemberNumber, Function.identity()));
    } catch (DataAccessException e) {
        throw new MemberException(“There is an issue to search member (+" + e.getMessage() + ")", e);
    }