• 九、一对多


    三、一对多

    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>
  • 相关阅读:
    第四章、数值计算
    一、bif
    十三、LaTex中的参考文献BibTex
    图像分类数据组织方式
    深度学习中loss总结
    类别不平衡问题
    各种优化器的比较
    机器学习优化器总结
    空洞卷积
    深度学习之语义分割中的度量标准
  • 原文地址:https://www.cnblogs.com/myz666/p/8425065.html
Copyright © 2020-2023  润新知