前两篇博客介绍了多对一和一对一关联映射,这篇博客介绍一对多关联映射,它的原理和多对一关联映射的原理是一样的,都是在多的一端加入一个外键,指向一的一端。下面详细介绍相关内容:
一、单向一对多
一对多的关系我们用学生和班级来说,一个班级有多个学生,多个学生可能属于一个班级,他们的对象模型和关系模型如下:
在进行关系映射时需要在一的一端添加<one-to-many>标签,另外还需要在一的一端(Classes)添加set属性,在映射文件中添加set标签。
classes类代码如下:
import java.util.Set;
public class Classes {
private int id;
private String name;
private Set students;
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;
}
public Set getStudents() {
return students;
}
public void setStudents(Set students) {
this.students = students;
}
}
classes.hbm.xml配置如下:
<hibernate-mapping>
<class name="com.hibernate.Classes" table="t_classes">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="students">
<key column="classesid"></key>
<one-to-many class="com.hiber