zoukankan      html  css  js  c++  java
  • Hibernate cascade级联

    cascade:

    级联:
      是对象的连锁操作

     级联保存(一对多):

    级联保存:
      当保存双向关系的一方时,默认会报告错误,此时应该在customr中设置级联保存,即操作一个对象时,通过操作其他关联对象

      如果一方设置了cascade,那么在测试用例中针对这一方进行保存操作
      多对多的级联保存语法和一对多的级联保存语法相似,均在<set>节点增加 cascade="save-update"
      在customer一端配置级联更新:
      <set name="orders" cascade="save-update">
        <key column="customer_id"></key>
        <one-to-many class="com.roxy.hibernate.pojo.Order"/>
      </set> 
      在测试用例中针对customer进行操作:
        cust.getOrders().add(o1);
        cust.getOrders().add(o2);
     
        session.save(cust);    

    级联删除(一对多):

    级联删除:
      如果不设置级联删除,那么在删除列信息时会将数据的外键设置为null
      如果设置了级联删除,那么会在删除信息时将外键关联的数据同时删除

    如果一方设置了cascade,那么在测试用例中针对这一方进行删除操作
    多对多的级联保存语法和一对多的级联保存语法相似,均在<set>节点增加 cascade="save-update, delete"

     

      在customer端配置级联删除:
      <set name="orders" cascade="save-update, delete">
        <key column="customer_id"></key>
        <one-to-many class="com.roxy.hibernate.pojo.Order"/>
      </set>

    or:

      <set name="orders" cascade="all">

       在测试用例中测试:

            Customer customer = session.get(Customer.class, 14);
            session.delete(customer);

  • 相关阅读:
    今週のschedule
    软件架构师应该知道的97件事
    没办法的复习
    优秀程序员的45个习惯
    程序员如何追女孩
    那些相见恨晚的 JavaScript 技巧
    CodeSmith开发系列资料总结
    HR的至高机密:20个公司绝对不会告诉你的潜规则
    asp.net页面出错时的处理方法
    Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题
  • 原文地址:https://www.cnblogs.com/roxy/p/7608945.html
Copyright © 2011-2022 走看看