Колонки id не найдено в этом ResultSet’’е.] with root cause
Не понимаю, в чём проблема.
Мой код:
public List<StudentHomework> getHomework(Long id) {
//language=sql
String sql = """
SELECT persons.last_name, persons.first_name, subjects.subject_name, class.title, homeworks.content
FROM students
JOIN persons ON students.person_id = persons.id
JOIN class ON class.id = students.class_id
JOIN teachers ON class.teacher_id = teachers.id
JOIN homeworks ON teachers.id = homeworks.teacher_id
JOIN subjects ON homeworks.subject_id = subjects.id
WHERE students.id = ?
""";
return jdbcTemplate.query(sql, new StudentHomeworkMapper(), id);
}
Класс в который я всё сохраняю:
package com.example.school.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StudentHomework {
private Long id;
private String lastName;
private String firstName;
private String subjectName;
private String clazz;
private String homework;
}
Mapper:
package com.example.school.mapper;
import com.example.school.dto.StudentHomework;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class StudentHomeworkMapper implements RowMapper<StudentHomework> {
@Override
public StudentHomework mapRow(ResultSet resultSet, int rowNum) throws SQLException {
StudentHomework studentHomework = new StudentHomework();
studentHomework.setId(resultSet.getLong("id"));
studentHomework.setLastName(resultSet.getString("last_name"));
studentHomework.setFirstName(resultSet.getString("first_name"));
studentHomework.setSubjectName(resultSet.getString("subject_name"));
studentHomework.setClazz(resultSet.getString("title"));
studentHomework.setHomework(resultSet.getString("content"));
return studentHomework;
}
}
Сообщение об ошибке:
2022-05-04 15:37:58.887 ERROR 10100 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT persons.last_name, persons.first_name, subjects.subject_name, class.title, homeworks.content
FROM students
JOIN persons ON students.person_id = persons.id
JOIN class ON class.id = students.class_id
JOIN teachers ON class.teacher_id = teachers.id
JOIN homeworks ON teachers.id = homeworks.teacher_id
JOIN subjects ON homeworks.subject_id = subjects.id
WHERE students.id = ?
]; nested exception is org.postgresql.util.PSQLException: Колонки id не найдено в этом ResultSet’’е.] with root cause
org.postgresql.util.PSQLException: Колонки id не найдено в этом ResultSet’’е.
at org.postgresql.jdbc.PgResultSet.findColumn(PgResultSet.java:2946) ~[postgresql-42.3.4.jar:42.3.4]
at org.postgresql.jdbc.PgResultSet.getLong(PgResultSet.java:2829) ~[postgresql-42.3.4.jar:42.3.4]
at com.example.school.mapper.StudentHomeworkMapper.mapRow(StudentHomeworkMapper.java:13) ~[main/:na]
at com.example.school.mapper.StudentHomeworkMapper.mapRow(StudentHomeworkMapper.java:9) ~[main/:na]