我尝试传递一个字符串值数组,这样字符串数组就可以在"IN"子句中使用,就像Java/PostgreSQL:
示例查询(包含在字符串变量中):
private static final String strSQLQueryAcceptingAnArray = "SELECT count(*) FROM sometable WHERE clm IN (:arrStringValues);";
public List<SampleReturnObject> getInClauseResults(List<String> lstStringValues) {
Set<String> setStringValues = new HashSet<String>(lstStringValues);
return this.query(strSQLQueryAcceptingAnArray, previouslyDefinedRowMapper, new Object[] { setStringValues });
}
但是,当我运行这个程序时,我得到了下面的错误消息:
无法推断用于ors.springframework.jdbc.namedparam.MapSQLParameterSource示例的SQL类型。请使用带有显式类型值的setObject()来指定要使用的类型。
如何使用Java和Spring Framework传递字符串列表/数组以用于PostgreSQL中的"IN"子句?
2条答案
按热度按时间kr98yfug1#
您可以将NamedParameterJdbcTemplate与SqlParameterSource一起使用,如下所示:
wi3ka0sx2#
通过使用逗号分隔值将数组值追加到字符串中,然后在sql查询IN子句中使用该字符串。