queryDSL:通过使用Id等于set元素来获取记录

时间:2014-03-20 12:03:45

标签: querydsl

我想根据student_id获取college_id,其中College包含Set<Student> students. 我在查询

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

student实例中传递的只包含主键。 抛出的异常是

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.

请提出正确的查询。

1 个答案:

答案 0 :(得分:1)

正确的查询字符串应该类似于

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

clg.students.any()是Querydsl语法,不能在JPQL查询字符串中使用。