zoukankan      html  css  js  c++  java
  • hibernate---级联保存、级联删除

    直接上菜:

    dept.hbm.xml:关键点标蓝色这部分,inverse表示放弃维护外键关系,cascade就不用说了

    <hibernate-mapping package="com.cissst.it.dept.entity">
        <class name="Dept" table="DEPT1">
            <id name="deptno" column="DEPTNO">
                <generator class="native"></generator>
            </id>
            <property name="dname" column="DNAME"></property>
            <set name="emps" inverse="true" cascade="save-update,delete">
                <key column="deptno"></key>
                <one-to-many class="com.cissst.it.emp.entity.Emp" />
            </set>
        </class>
    </hibernate-mapping>

    emp.hbm.xml

    <hibernate-mapping package="com.cissst.it.emp.entity">
        <class name="Emp" table="EMP1">
            <id name="empno" column="EMPNO">
                <generator class="native"></generator>
            </id>
            <property name="ename" column="ENAME"></property>
            <property name="job" column="JOB"></property>
            <many-to-one name="dept" class="com.cissst.it.dept.entity.Dept"/>
        </class>
        
    </hibernate-mapping>

    测试类:

        public static void main(String[] args) {
            //级联保存
            Session session = SessionUtil.openSession();
            Transaction tx = session.getTransaction();
            tx.begin();
            Dept dept = new Dept();
            dept.setDname("develop");
            Emp emp1 = new Emp();
            emp1.setEname("PECOOL");
            emp1.setJob("CODE");
            Emp emp2 = new Emp();
            emp2.setEname("PHOEBE");
            emp2.setJob("PHOTO");
            HashSet<Emp> set = new HashSet<Emp>();
            set.add(emp1);
            set.add(emp2);
            dept.setEmps(set);
            session.save(dept);
            tx.commit();
            session.close();
        }

    result:

        只需要保存dept对象,dept中的emp对象也会得到保存,一般1方放弃维护外键关系有助于改善性能,发现sql中明显少了update语句。

    Best Regards
  • 相关阅读:
    IE6兼容问题
    清除浮动的几种方法
    CSS的继承性和层叠性
    CSS基础选择器复习
    梦与醒,进与退
    CSS的入门概念
    HTML的入门概念
    弹性布局整理
    点击评论加入输入框(笔记)
    css命名(笔记)
  • 原文地址:https://www.cnblogs.com/pecool/p/9690996.html
Copyright © 2011-2022 走看看