Spring boot - не найден идентификатор свойства для типа User - PullRequest
0 голосов
/ 01 мая 2020

Ну, я искал в Google и нашел много результатов, но ни один из них не смог ответить на мою проблему. Итак, вот и все.

Я пытаюсь изучить Spring MVC и Spring Data JPA, выполняя минимальную реализацию клона интереса. Итак, следующие части кода, которые, я думаю, имеют отношение к моей проблеме.

Класс репозитория:

public interface CourseStudentRepository extends JpaRepository <CourseStudent, Long> {

    List<CourseStudent> findByCourseInstructorId(Long instructorId);

    List<CourseStudent> findByStudentID (Long studentId);
}

Класс сущности:

@Data
@Entity
@Table(name = "course_student")
public class CourseStudent implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "student_id", referencedColumnName = "id")
    private User student;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "course_id", referencedColumnName = "id")
    private Course course;

}

Ошибка:

Failed to create query for method public abstract java.util.List com.sha.serverside.repository.CourseStudentRepository.findByStudentID(java.lang.Long)! No property ID found for type User! Did you mean 'id'? Traversed path: CourseStudent.student.

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Ошибка говорит, что нет поля ID класса Student, но вы используете List<CourseStudent> findByStudentID в репозитории. Имя поля чувствительно к регистру, ID и Id не совпадают.

Используйте findByStudentId вместо findByStudentID

List<CourseStudent> findByStudentId (Long studentId);
0 голосов
/ 01 мая 2020

Береги дело. Имя должно быть findByStudentId. с нижним регистром d в конце

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...