首页 » Java » Hibernate一对一、一对多、多对多表间关系

Hibernate一对一、一对多、多对多表间关系

原文 http://blog.csdn.net/m0_37787069/article/details/79209960

2018-01-31 02:00:37阅读(909)

1. 为什么要学习关系关系?
数据库表间存在若干关系
 万事万物也存在若干关系
2. 对象间有几种关联关系
单向 :你中有我,我中没你
双向:你中有我,我中有您。
3. 关系型数据与对象型数据
数据库:存放关系模型的数据
java:存放对象模型的数据
4. 单向一对多
 部门与员工

 <a href=Hibernate一对一、一对多、多对多表间关系" src="http://img.blog.csdn.net/20180130195206167?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbTBfMzc3ODcwNjk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

 Emp.java

public  class  Emp{
     private int id;
     private String name;
}
 Dept.java
public  class  Dept{
     private int id;
     private String name;
     Set<Emp>  emps  = new HashSet<Emp>();
}
 Emp.hbm.xml
<class name="com.gec.cn.dao.domain.Emp" table="emp">
        <id name="id" column="id" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" column="name" type="string"/>
 </class>
 Dept.hbm.xml
<class name="com.gec.cn.dao.domain.Dept" table="dept">
        <id name="id" column="id" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" column="name" type="string"/>
        <set name="emps" cascade="all" inverse="true">
        	<key column="dept_id"></key>
        	<one-to-many class="com.gec.cn.dao.domain.Emp" />
        </set>
 </class>
5. 单向多对一
Hibernate一对一、一对多、多对多表间关系
 Emp.java
public  class  Emp{
     private int id;
     private String name;
     private Dept dept;
}
 Dept.java
public  class  Dept{
     private int id;
     private String name;
}
 Emp.hbm.xml
<class name="com.gec.cn.dao.domain.Emp" table="emp">
        <id name="id" column="id" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" column="name" type="string"/>
<many-to-one name="dept" column="dept_id" class="com.gec.cn.dao.domain.Dept"></many-to-one>
 </class>
 Dept.hbm.xml
<class name="com.gec.cn.dao.domain.Dept" table="dept">
        <id name="id" column="id" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" column="name" type="string"/>
 </class>
6  双向多对一(一对多)
Hibernate一对一、一对多、多对多表间关系
 Dept.java
public  class  Dept{
     private int id;
     private String name;
     Set<Emp>  emps  = new HashSet<Emp>();
}
 Dept.java
public  class  Emp{
     private int id;
     private String name;
     private Dept dept;
}
 Emp.hbm.xml
<class name="com.gec.cn.dao.domain.Emp" table="emp">
        <id name="id" column="id" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" column="name" type="string"/>
<many-to-one name="dept" column="dept_id" class="com.gec.cn.dao.domain.Dept"></many-to-one>
 </class>
 Dept.hbm.xml
<class name="com.gec.cn.dao.domain.Dept" table="dept">
        <id name="id" column="id" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" column="name" type="string"/>
		 <set name="emps" cascade="all" inverse="true">
        	<key column="dept_id"></key>
        	<one-to-many class="com.gec.cn.dao.domain.Emp" />
        </set>
 </class>
7. 多对多
老师与学生

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹