zoukankan      html  css  js  c++  java
  • 双向一对多

    1.在一的一方实体类里添加多的一方的集合

    public class Dept {
        private Integer deptNo;
        private String deptName;
        
        //加入员工集合
        private Set<Emp> emps=new HashSet<Emp>();
        
        
        public Set<Emp> getEmps() {
            return emps;
        }
        public void setEmps(Set<Emp> emps) {
            this.emps = emps;
        }
        
        
        
        public Integer getDeptNo() {
            return deptNo;
        }
        public void setDeptNo(Integer deptNo) {
            this.deptNo = deptNo;
        }
        public String getDeptName() {
            return deptName;
        }
        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }

    2.双向的一对多需要在一的一方的小配置里添加<set></set>元素:

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
        
    <hibernate-mapping package="cn.a.happy">
         <class name="Dept" table="DEPT">
            <id name="deptNo">
            <!-- native   数据库方言的可移植性 -->
               <generator class="sequence">
                   <param name="sequence">SQE_NUM</param>
               </generator>
            </id>
            
            <property name="deptName"/>
            
            <!-- 
                inverse="false" 主动方 维护关联关系
                inverse="true" 被动方 不维护关联关系(不干扰Emp主键生成)
             -->
             <!-- 一对多 -->
            <set name="emps" cascade="save-update,delete" inverse="true" >
                <key column="deptNo"/>    <!-- 一的一方的外键 -->
                <one-to-many class="Emp"/>    <!-- 外键的成员类型 -->
            </set>
            
        </class>
    </hibernate-mapping>

    测试类:

    /**
             * 双向一对多关联测试
             * 添加操作
             */
            @Test
            public void onVsMuchTest(){
                //构建一个部门
                Dept dept=new Dept();
                dept.setDeptName("就业部");
                
                //构建一个员工
                Emp emp=new Emp();
                emp.setEmpName("啦啦啦");
                
                //指定员工隶属部门
                
                dept.getEmps().add(emp);
                
                //save()
                session.save(dept);
                session.save(emp);
                
            }

    测试成功:

    看一下数据库:

    DEPT表:

    EMP表:

  • 相关阅读:
    div居中方法总结
    windows下配置nginx环境
    webpack+babel+react操作小结
    JavaScript数组常用操作总结
    MyBatis使用Generator自动生成代码
    如何上Chrome谷歌商店
    深入理解Spring IOC
    SpringMVC概要总结
    mybatis防止sql注入
    Redis和Memcache的区别分析
  • 原文地址:https://www.cnblogs.com/qingzhi/p/5838482.html
Copyright © 2011-2022 走看看