• 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
  • 相关阅读:
    004_Linux命令之查找与检索
    Linux passwd文件释义
    等保2.0涉及的PostgreSQL
    等保2.0测评:VMware ESXI
    等保2.0测评:Redis 数据库配置
    等保2.0测评之Nginx 中间件
    netcat使用方法
    Zookeeper的功能以及工作原理
    Nginx三大功能
    jellyfin错误 播放错误 该客户端与媒体不兼容,服务器未发送兼容的媒体格式 的解决办法
  • 原文地址:https://www.cnblogs.com/pecool/p/9690996.html
Copyright © 2020-2023  润新知