重複の可能性:
Spring JdbcTemplate を使用して動的な「in (…)」SQL リストを生成する方法は?
IN()
Java で MsSQLの句の ID のリストを作成しようとしています。以下のコードは動作するはずですが、エラーがスローされます: java.sql.SQLException: nvarchar 値 '1,2' をデータ型 int に変換するときに変換に失敗しました。
文字列を渡すときに整数のようにしようとしている理由について、私は完全に途方に暮れています。どんな洞察も素晴らしいでしょう。
私も運が悪かったに変更しよtemplate.getId()
うとしましたtemplate.getId().toString()
//JOINs
Collection<Template> templates = search.getTemplateCollection();
if (templates != null && templates.size() > 0) {
searchQuery.append("INNER JOIN dbo.content_to_template ON content_to_template.template_id IN (:templateIds) AND content_to_template.content_id = content.id ");
StringBuilder templateIds = new StringBuilder();
for (Template template : templates) {
if (templateIds.length() == 0) {
templateIds.append(template.getId());
} else {
templateIds.append(",").append(template.getId());
}
}
queryMap.put("templateIds", templateIds.toString());
}
return this.namedjdbcTemplate.query(searchQuery.toString(), new MapSqlParameterSource(queryMap), this.contentRowMapper);