Я получаю ошибку при выполнении следующего запроса. Я знаю, что мне нужно использовать '?' столько же, сколько размер списка, но размер списка отличается, и я не знаю, как заменить «?».Выполнить запрос IN() SQL с помощью JDBCTemplate
public List<Object> findAllGrades(String pnr, List<String>codes) {
return jdbcTemplate.query(
"select CourseParticipantship.grade from [thd].[dbo].[CourseParticipantship] "
+ "inner join thd.dbo.CourseMaterial on courseMaterial_id = CourseMaterial.id "
+ "inner join thd.dbo.Course on course_id = Course.id and Course.code in (?)"
+ "inner join thd.dbo.Student on student_id = Student.id "
+ "where Student.personalNumber in (?)",new Object[] { codes, pnr }, new RowMapper() {
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
return rs.getObject("grade");
}
});
}
Я получаю эту ошибку: Unable to convert between java.util.ArrayList and JAVA_OBJECT
Вы должны использовать 'in' здесь:' + ', где S.pnr в (?) "' – Jens