维护关系为:多指向一的关系,在加载多的时候可将一的一端数据自动加载
用户和组织就是一对多的关系
用户端
<class name="com.bjpowernode.hibernate.User" table="t_user">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name" />
<many-to-one name="group" column="groupid" cascade="save-update" />
</class>
组织端
<class name="com.bjpowernode.hibernate.Group" table="t_group">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name" />
</class>
原理:
- 在多的一段加入一个外键,指向一的一端
实现方式
- 在多的一端加入
<many-to-one>
标签,且添加cascade属性 cascade级联,级联是对象之间的连锁操作,对一个对象执行了操作之后,对其指定的级联对象也需要执行相同的操作,它只影响添加、删除和修改,有四种取值all,none,save-update,delete
- all:代表所有的情况下都执行级联曹祖
- none:在所有的情况下都不执行级联操作
- save-update:在保存和更新的时候执行级联操作
- delete:在删除的时候执行级联操作
我们这用的是save-update,所以在保存时,不用手动的保存一的一端,因为设置了级联操作,它就自动保存了,否则得手动的保存一的一端;但删除一的一端时,多的一端相应的所有数据将被删除;不用级联也可以,但是在保存数据时,需要手动保存一的一端