双向一对多

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表:

 

posted on 2016-09-04 01:18  -EASY-  阅读(990)  评论(0编辑  收藏  举报

导航