班级表Class和学生表Student表示一对多关系。
public class Class{
private String id;
private String classNumber;
private Set<Student> students;
}
public class Student{
private String id;
private String studentNumber;
private Class class;
}
做关联查询的时候,为什么我们不用:select s from Student s left join Class c where c.clasNumber='3'呢?
而是用select s from Student s left join s.class.classNumber='3'
原因是这样的,从技术的角度来讲,Student表中可以有两个Class类型的成员变量。如下所示:
public class Student{
private String id;
private String studentNumber;
private Class class1;
private Class class2;
}
为了指明具体是哪个成员变量,所以hibernate才是这样设计的。