HQL语法从多种关系中检索

时间:2018-05-17 06:41:07

标签: hibernate hql

我有两个实体,即学生和教师,他们有多对多的关系

Student.java:

@ManyToMany
    @JoinTable(name="CROOS_STUDENT_TEACHER", joinColumns=@JoinColumn(name="STUDENT_ID"), inverseJoinColumns=@JoinColumn(name="TEACHER_ID"))

    private Collection<Teacher> teachers = new ArrayList<Teacher>();

Teacher.java:

@ManyToMany
private Collection<Student> students= new ArrayList<Student>();

我目前正在尝试检索使用教师身份的特定教师的嫌疑人名单

select a from Student JOIN a.teachers p FROM Teacher where p.id = :id

并给了我一个错误

我也改变了一点就像从老师那里删除但是它仍然无法工作,我能用其他任何方式吗?

1 个答案:

答案 0 :(得分:0)

正确的应该是:

select a from Student a JOIN a.teachers p where p.id = :id

您的查询包含一些语法缺陷:

  • 单个查询中的两个from个关键字

  • 您没有为Student指定别名,但使用a