一对多关系映射

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一对多关系映射相关的知识,希望对你有一定的参考价值。

我们想把 部门 与 员工 这两种类型的数据保存到数据库中

假设:

       一个员工不能同时属于多个部门。那么 部门 跟员工之间的关系 ,从部门角度分析 便是 一对多的关系

第一步设计类:

      技术分享

 

第二步,实现类:

public class Department {

private Integer id;
private String departName;
private Set<Employee> employees;
    //getter & setter
}
public class Employee {

private Integer id;
private String name;
private Department department;

    //getter & setter
}

第三步,hbm.xml文件的的映射:
<!--Department.hbm.xml-->
<hibernate-mapping package="one2many">
    <class name="Department" table="t_department">
        <id name="id">
            <generator class="native"/>
        </id>
        <property name="departName"/> 
        <!--employees,set集合 表达的是本类与  Employee 的 一对多 关系-->
        <set name="employees" table="t_employee">
            <key column="departmentId"></key>
            <one-to-many class="one2many.Employee"/>
        </set>
    </class>
</hibernate-mapping>
 
<!--Employee.hbm.xml-->
<hibernate-mapping package="one2many">
    <class name="Employee" table="t_employee">
        <id name="id">
            <generator class="native"/>
        </id>
        <property name="name"/>
        <!--department属性,表达的是本类与 Department 的 多对一 关系-->
        <many-to-one name="department" class="one2many.Department" column="departmentId"/>
    </class>
</hibernate-mapping>

 

根据xml文件来分析出数据库中的表:
技术分享


 

 
 










以上是关于一对多关系映射的主要内容,如果未能解决你的问题,请参考以下文章

一对多和递归关系 - 强制设置值

Java 中mybatis 关系映射,比如:一对多

jeecg中一对多的关系映射

Hibernate映射关系:一对一对多和多对多

如何使用自定义映射映射一对多关系

MyBatis的一对一关联关系映射