hibernate基础------》映射关系---》cascade作用

                                        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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值