码迷,mamicode.com
首页 > Web开发 > 详细

hibernate---级联保存、级联删除

时间:2018-09-22 21:11:39      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:hash   new   nat   改善   bsp   cas   hiberna   comm   cti   

直接上菜:

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语句。

hibernate---级联保存、级联删除

标签:hash   new   nat   改善   bsp   cas   hiberna   comm   cti   

原文地址:https://www.cnblogs.com/pecool/p/9690996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!