假如有一个College实体和Student实体,两者之间是one-to-many的关系,一个大学可以有多个学生,但是一个学生只能属于一个大学。参考hibernate manual可以很容易的配出一个one-to-many的单向关联。
package onemany.model;
import java.util.Set;
public class College {
private int id;
private String name;
private Set<Student> allStudents;
.....
}
package onemany.model;
public class Student {
private int sid;
private String sname;
......
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="onemany.model.College" table="t_association_college">
<id name="id" column="cid" type="int">
<generator class="native" />
</id>
<property name="name" column="cname" type="string" />
<!-- set的fetch除了selec|join,还增加了一个subselect选项. subselect,选发出一条sql查询实体对象,再发出一条sql查询关联的实体对象. -->
<set name="allStudents" table="t_association_student" fetch="subselect"
lazy="false">
<key column="college_id" not-null="true" />
<one-to-many class="onemany.model.Student" />
</set>
</class>