从多对多关系中检索的 HQL 语法
HQL Syntax to retrieve from a manytomany relationship
我有两个实体,学生和老师,他们之间存在多对多关系
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>();
我目前正在尝试使用
等教师 ID 检索特定教师下的学生列表
select a from Student JOIN a.teachers p FROM Teacher where p.id = :id
并给我一个错误
我也做了一些改动,比如从老师那里删除了,但还是不行,还有什么办法吗?
正确的应该是:
select a from Student a JOIN a.teachers p where p.id = :id
您的查询包含一些语法缺陷,例如:
单个查询中有两个 from
关键字
您没有为 Student
指定别名,但使用 a
我有两个实体,学生和老师,他们之间存在多对多关系
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>();
我目前正在尝试使用
等教师 ID 检索特定教师下的学生列表select a from Student JOIN a.teachers p FROM Teacher where p.id = :id
并给我一个错误
我也做了一些改动,比如从老师那里删除了,但还是不行,还有什么办法吗?
正确的应该是:
select a from Student a JOIN a.teachers p where p.id = :id
您的查询包含一些语法缺陷,例如:
单个查询中有两个
from
关键字您没有为
Student
指定别名,但使用a