当设置了cascade属性不为none时,Hibernate
会自动持久化所关联的对象
cascade
属性的设置会带来性能上的变动,需谨慎设置
<set
name="streets" table="street" cascade="all"
>
…
</set>
Cascade属性值
属性值 |
含义和作用 |
all |
对所有操作进行级联操作 |
save-update |
执行保存和更新操作时进行级联操作 |
delete |
执行删除操作时进行级联操作 |
none |
对所有操作不进行级联操作 |
术语“inverse”直译为“反转”
在Hibernate
中,inverse属性指定了关联关系中的方向
关联关系中,inverse="false"
的为主动方,由主动方负责维护关联关系
在一对多关联中,将one 方的inverse 设置为true,这将有助性能的改善
<set
name="streets" table="street" cascade="all" inverse="true"
>
…
</set>
inverse指的是关联关系的控制方向,而cascade指的是层级之间的连锁操作
配置多对多关联:
每个人可以参加一个或多个项目,每个项目由一个或多个人完成

<class
name="Project" table="project" >
<set
name="members"
table="r_emp_proj">
<key column="r_proj_id"
/>
<many-to-many class="cn.jbit.aptech.jb.entity.Employee"
column="r_emp_id"
/>
</set>
</class>
<class
name="Employee" table="employee" >
<set
name="projects"
table="r_emp_proj"
inverse="true">
<key column="r_emp_id"
/>
<many-to-many class="cn.jbit.aptech.jb.entity.Project"
column="r_proj_id"
/>
</set>
</class>