문제

I want to get the college_id based on the student_id, where College contains Set<Student> students. I am querying like

@Query("SELECT clg.id FROM College clg WHERE clg.students.any() = (:student)")
public List<Object> getCollegeIdByStudent(@Param("student") Student student);

Passed in student instance contains only the primary key. Exception thrown is

org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet.

Please suggest correct query.

도움이 되었습니까?

해결책

The correct query string should be something like

SELECT clg.id FROM College clg WHERE :student MEMBER OF clg.students

clg.students.any() is Querydsl syntax and can't be used in a JPQL query string.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top