cascade级联操作(个人认为更像同步操作)
例子:
在多对多关系中,以员工和项目之间的关系为例
不使用cascade情况下写法
运行类
new emp--->emp1,emp2,emp3
new product--->pro_1,pro_2
以pro为控制类
pro_1.getempl.add(emp1);
pro_1.getempl.add(emp2);
pro_2.getempl.add(emp1);
pro_2.getempl.add(emp3);
session.save(pro_1);
session.save(pro_2);
session.save(emp1);
session.save(emp2);
session.save(emp3);
配置文件
员工类---》
<set name="pro" table="pro_eml">
<key column="emp_id1" ></key>
<many-to-many class="Product" column="pro_id1"></many-to-many>
</set>
项目类
<set name="empls" table="pro_eml" >
<key column="pro_id1"></key>
<many-to-many class="Empl" column="emp_id1"></many-to-many>
</set>
这里的配置没有采用cascade,同样也能够进行many2many的运行,但是session.save()就比较多了(总共有5个)
------》(敲黑板这是重点)如果想便利一点那就使用cascade="all"或者cascade="save-update"即控制类的session使用什么方法,它就会同步到它的B类即被控制类的session中,
通俗的说就是控制类干嘛,被控制类也干嘛(仅限于session缓存)
2.使用cascade="all"方法执行上面内容
运行类
session.save(pro1);
session.save(pro2);
员工配置还是和上面的一样
项目配置
<set name="empls" table="pro_eml" cascade="all">//多出了一个cascade运行类就可以少操作了!
<key column="pro_id1"></key>
<many-to-many class="Empl" column="emp_id1"></many-to-many>
</set>
例子:
在多对多关系中,以员工和项目之间的关系为例
不使用cascade情况下写法
运行类
new emp--->emp1,emp2,emp3
new product--->pro_1,pro_2
以pro为控制类
pro_1.getempl.add(emp1);
pro_1.getempl.add(emp2);
pro_2.getempl.add(emp1);
pro_2.getempl.add(emp3);
session.save(pro_1);
session.save(pro_2);
session.save(emp1);
session.save(emp2);
session.save(emp3);
配置文件
员工类---》
<set name="pro" table="pro_eml">
<key column="emp_id1" ></key>
<many-to-many class="Product" column="pro_id1"></many-to-many>
</set>
项目类
<set name="empls" table="pro_eml" >
<key column="pro_id1"></key>
<many-to-many class="Empl" column="emp_id1"></many-to-many>
</set>
这里的配置没有采用cascade,同样也能够进行many2many的运行,但是session.save()就比较多了(总共有5个)
------》(敲黑板这是重点)如果想便利一点那就使用cascade="all"或者cascade="save-update"即控制类的session使用什么方法,它就会同步到它的B类即被控制类的session中,
通俗的说就是控制类干嘛,被控制类也干嘛(仅限于session缓存)
2.使用cascade="all"方法执行上面内容
运行类
session.save(pro1);
session.save(pro2);
员工配置还是和上面的一样
项目配置
<set name="empls" table="pro_eml" cascade="all">//多出了一个cascade运行类就可以少操作了!
<key column="pro_id1"></key>
<many-to-many class="Empl" column="emp_id1"></many-to-many>
</set>