zoukankan      html  css  js  c++  java
  • 九、一对多

    三、一对多

    1.Department里添加集合属性

    private int id;
    
    private String name;
    
    private Set<Employee> emps;//表示这个部门所含有的员工

    2.在Department.hbm.xml下添加映射

    <set name="emps">
    
    <key column="dept_id"></key>
    
     
    
    <!--<one-to-many class="com.myz.domain.Employee"/> -->
    
    <one-to-many class="Employee"/>
    
    </set>

    3.测试

    //取出所有部门编号为1的员工
    
    Department department= (Department) session.get(Department.class, 1);
    
    Set<Employee> emps = department.getEmps();
    
    for(Employee e:emps){
    
    System.out.println(e.getName());
    
    }
    
     
    
    //添加
    
    Department department= new Department();
    
    department.setId(2);
    
    department.setName("人事部");
    
     
    
    Set<Employee> sets=new HashSet<Employee>();
    
    Employee e1=new Employee();
    
    e1.setName("李逵"); e1.setId(3);
    
    Employee e2=new Employee();
    
    e1.setName("武松"); e2.setId(4);
    
     
    
    sets.add(e1);
    
    sets.add(e2);
    
     
    
    department.setEmps(sets);
    
     
    
    session.save(department);

    执行这段代码可能会报错,因为在保存department的时候,hibernate还没有保存setse1,e2等对象。

    如果发生了异常,在Department.hbm.xml的一对多中添加级联保存即可

    <set name="emps" cascade="save-update">
    
    <key column="dept_id"></key>
    
    <!--<one-to-many class="com.myz.domain.Employee"/> -->
    
    <one-to-many class="Employee"/>
    
    </set>
  • 相关阅读:
    Webform服务器控件调用JS
    Webfrom基础知识
    Webform用户控件
    数组练习
    整理
    SVN分支与合并
    根据经纬度,获取两点间的距离
    简单Bat文件编写
    Maven Android使用一
    Maven环境配置
  • 原文地址:https://www.cnblogs.com/myz666/p/8425065.html
Copyright © 2011-2022 走看看