Hibernate_多对多_单向关联
在Teacher类里面设置Student对象的引用,并注释@ManyToMany、@JoinTable
Teacher类如下:
@Entity
public class Teacher {
private int id;
private String name;
private Set<Student> students=new HashSet<Student>();
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToMany
@JoinTable(name="t_s",
joinColumns=@JoinColumn(name="tid"),
inverseJoinColumns=@JoinColumn(name="sid")
)
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
@JoinTable:name指定的是中间表的名称、joinColumns指定的是当前类的主键作为中间表的外键、iverseJoinColumns指定的是对方类的主键作为中间表的外键。
后缀都带Columns是因为有可能Student表与Teacher表是用2个字段作为联合主键。
Student类如下
@Entity
public class Student {
private int id;
private String name;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}