比如学生和学校。多个学生都对应一个学校。这里说的是从学生到学校的多对一单向关联。
public class Student
{
private Long id;
private String name;
private School school;
....getter setter
}
看看School.hbm.xml
<hibernate-mapping>
<class name="School" table="school">
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id>
<property name="name" type="String" column="name"/>
</class>
</hibernate-mapping>
Student.hbm.xml的其他字段属性和School类似,但是它的school字段,怎么配置呢?看看Student.hbm.xml里的配置
<many-to-one
name="school"
column="school_id"
class="School"
lazy="false"
/>
name设定待映射的持久化类的属性名字
column设置了student表的对应的外键
lazy如果为proxy,表示对关联的School对象使用延迟检索策略并使用代理,这是默认值。如果为false,就意味着HIbernate从数据库中加载School对象时,还会立即自动加载于它关联的School对象。