Hibernate第三天
来源:互联网 发布:中日韩围棋 知乎 编辑:程序博客网 时间:2024/06/15 04:49
1. 多对多的关联映射
- 列子:程序员开发程序
- 两个一对多的关系就构成了多对多的关系
代码演示:
Project的一方的配置<!--配置的是多对多的集合映射--><set name="devs" table="t_relation" cascade="all"> <!--上面的这个key你记住就是映射的当前的类的主键--> <key column="pro_id"></key> <!--配置的是相关联的另外一张表 column:配置的是对方的主键在关系表中映射的这个值的列名 class:配置的是对方的这个名字 --> <many-to-many column="dev_id" class="Developer"></many-to-many></set> Developer一方的配置 <!--配置的是多对多的集合映射--><set name="pros" table="t_relation" cascade="all"> <!--上面的这个key你记住就是映射的当前的类的主键--> <key column="dev_id"></key> <!--配置的是相关联的另外一张表 column:配置的是对方的主键在关系表中映射的这个值的列名 class:配置的是对方的这个名字 --> <many-to-many column="pro_id" class="Project"></many-to-many></set>注意:在实际开发中many to many 只需要配置一方 不存在谁维护谁的说法
2. 继承映射
普通继承映射:animal—>dog
<hibernate-mapping package="com.qf.extend2"> <class name="Dog" table="t_dog"> <!--配置的是表里面的主键--> <id name="id" type="java.lang.Integer"> <generator class="native"> </generator> </id> <!--配置的是普通的列--> <property name="color"></property> <property name="name"></property> <property name="num"></property> </class> </hibernate-mapping>
所有子类对应一张表:只有分类才能知道谁是谁的数据
<hibernate-mapping package="com.qf.extend3"> <class name="Animal" table="t_animal_01"> <!--配置的是表里面的主键--> <id name="id" type="java.lang.Integer"> <generator class="native"> </generator> </id> <!-- 下面就配置一个非公共的 --> <!--首先的整个分类 下面这个就是分类的这个列 --> <discriminator column="type_" length="30" type="string"></discriminator> <!--配置的是普通的列--> <property name="color"></property> <property name="name"></property> <!--分别来配置我们的 dog 和 fish了--> <subclass name="Dog" discriminator-value="dog_"> <!--要给这个孩子配置个类型--> <property name="num" type="string"></property> </subclass> <!--配置鱼的信息--> <subclass name="Fish" discriminator-value="fish_"> <property name="fishCoatCount" type="java.lang.Integer"></property> </subclass> </class></hibernate-mapping>
子类以外键的形式连接:注意两点 主键的不能使用自增长 使用的是join-class 来进行分表的
<!-- 下面就配置一个非公共的 --> <!--首先的整个分类 下面这个就是分类的这个列 --> <discriminator column="type_" length="30" type="string"></discriminator> <!--配置的是普通的列--> <property name="color"></property> <property name="name"></property> <!--分别来配置我们的 dog 和 fish了--> <subclass name="Dog" discriminator-value="dog_"> <!--要给这个孩子配置个类型--> <property name="num" type="string"></property> </subclass> <!--配置鱼的信息--> <subclass name="Fish" discriminator-value="fish_"> <property name="fishCoatCount" type="java.lang.Integer"></property> </subclass> </class></hibernate-mapping>
不是使用普通类的继承映射,第一种要配置很多文件,所有我们采用union-class的方式来配置子类
<hibernate-mapping package="com.qf.extend5"> <!-- abstract="true":这个表示的是不对应表 --> <class name="Animal" abstract="true"> <!--配置的是表里面的主键--> <id name="id" type="string"> <generator class="assigned"> </generator> </id> <!--配置的是普通的列--> <property name="color"></property> <property name="name"></property> <!--接下来就是配置加表的问题--> <union-subclass name="Dog" table="t_dog_03"> <property name="num"></property> </union-subclass> <!--下面就配置鱼了--> <union-subclass name="Fish" table="t_fish_03"> <property name="fishCoatCount"></property> </union-subclass> </class> </hibernate-mapping>
3.一对一映射
- 列子:人<——————->身份证
代码:
<hibernate-mapping package="com.qf.one2one"> <class name="IdCard" table="t_idcard"> <!--配置的是表里面的主键--> <id name="cardId" type="java.lang.Integer"> <generator class="native"> </generator> </id> <!--配置的是普通的列--> <property name="cardNum"></property> <!--下面配置的是引用主键的这一方--> <many-to-one name="people" column="p_id" class="People" cascade="all"></many-to-one> </class></hibernate-mapping> People的配置 <hibernate-mapping package="com.qf.one2one"> <class name="People" table="t_people"> <!--配置的是表里面的主键--> <id name="pId" type="java.lang.Integer"> <generator class="native"> </generator> </id> <!--配置的是普通的列--> <property name="name"></property> <!--接下来应该配置一对一的映射--> <one-to-one name="idCard" class="IdCard" cascade="all"></one-to-one> </class></hibernate-mapping>
阅读全文
0 0
- hibernate第三天
- Hibernate第三天
- Hibernate第三天
- ## Hibernate框架第三天 ##
- Hibernate第三天
- Hibernate学习第三天
- Hibernate第三天
- Hibernate框架基础知识第三天
- hibernate学习第三天笔记
- spring+hibernate学习的第三天
- hibernate学习笔记第三天(1)
- hibernate学习笔记第三天(2)
- Hibernate学习笔记(第三天)
- 笔记·Hibernate框架第三天
- Hibernate框架第三天(关联映射关系)
- 第三天
- 第三天
- 第三天
- extern作用详解
- 排序-1-冒泡排序
- HDU 1711 Number Sequence
- 【教程】一、eclipse集成Tomcat服务器并部署项目
- 线程--同步函数锁是this
- Hibernate第三天
- Android APP通过蓝牙耳机录音可行性分析
- TOMCAT源码分析-生命周期管理2
- Gimp 快速入门(3)
- Java中为什么静态方法不能访问非静态方法
- java策略设计模式
- 【Android面试】关于post你真的了解吗?
- 解决父级边框塌陷的方法
- CSDN博客积分规则和获取积分方法