1.cascade是否执行级联操作
<set name="children" lazy="true" cascade="all">
在保存主表的时候,如果没有保存从表信息,会抛出异常,如果设置了级联关系,可以自动先保存从表,在保存主表
all: 所有情况下均进行关联操作,即save-update和delete。
none: 所有情况下均不进行关联操作。这是默认值。
save-update: 在执行save/update/saveOrUpdate时进行关联操作。
2.inverse指定哪一方不控制关联关系,一般在set上(1端不维护)
<set name="children" lazy="true" inverse="true">
3.lazy :延迟加载
<class name=”mypack.Customer” table=”CUSTOMER” lazy=”false”>
laz Lazy属性为false:立即检索,一次性访问有关联关系的所有表。
llaz Lazy属性为true:(默认)延迟检索,只访问主表数据,从表数据不会立即访问,只有当用到从表的时候会自动访问。
Lazy的有效期:只有在session打开的时候才有效;session关闭后lazy就没效了。
Hibernate 的延迟加载(lazy load)本质上就是代理模式的应用
4.fetch :抓取策略,类似于lazy
<class name=”mypack.Customer” table=”CUSTOMER” fetch =”join”>
fetch="join”:类似于lazy=false,一次性查完
fetch="select”:类似于lazy=true