Я не думаю, что вы правильно используете параметр запроса, он должен выглядеть примерно так:
import org.springframework.data.repository.query.Param;
...
@SuppressWarnings("unused")
@Repository
public interface StudentInfoRepository extends JpaRepository<StudentInfo, Long> {
@Query("SELECT s FROM StudentInfo s WHERE s.ProfesorID = :profesorId")
List<StudentInfo> findAllByProfesorID(@Param("profesorId") Long profesorId);
Двоеточие говорит JPA, что следующее слово - это переменная, которую следует заменить значением @Param
с тем же именем.
Представьте себе @Query
как необходимость перемещаться, загружать и фильтровать объекты непосредственно в ваших Java объектах. Я говорю это потому, что имя вашего поля ProfesorID
, начинающееся с заглавной буквы "D", выглядит странно. Если это поле имеет имя profesorID
в вашей сущности java, тогда оно должно называться так же, когда вы хотите получить к нему доступ в запросе jpa.
Если вам нужна дополнительная информация об этом, здесь - отличное руководство с примерами.