hibernate第三节
1.为什么有关系映射?
1、是OO里面的关联概念和R里面的关联概念不匹配,才出现的关联。
2、操作一个对象时,相关联的对象也一起进行操作。
2.单向关联
1、当执行save(order)方法时会触发hibernate事件,找到CarOrder.hbm.xml映射文件
2、找到<many-to-one name="salesman" class="org.lyyf.pojo.Salesman" cascade="all">
</many-to-one>
3、如果设置cascade属性,则又触发了Salesman.hbm.xml,则先录入salesman,在录入order
order时主控方,而salesman是关联一方(数据库外键)
关系表里面的数据是主控方的录入的(由多这方维护关系表)
3.双向关联
1、当执行save(man时会触发hibernate事件,找到Salesnab.hbm.xml映射文件;
2、找到 <set name="carOrder" cascade="all" inverse="false">
<key column="sid"></key>
<one-to-many class="org.lyyf.pojo.CarOrder"/>
</set>
inverse的作用:在hibernate中是通过inverse的设置来决定是有谁来维护表和表之间的关系的。
3、如果设置cascade属性,并且inverse="false",则由自己负责维护关系表的关系
如果没有设置cascade属性,则不论如何都不维护关系表的关系;
如果设置cascade属性,并且inverse="true",则由对方去负责维护关系表的关系,触发对方的
映射文件;
cascade 有五个选项 分别是:all ,delete ,none,save-update,delete-orphan ;
1.all : 所有情况下均进行关联操作。 none:所有情况下均不进行关联操作。这是默认值。
2.save-update:在执行save/update/saveOrUpdate时进行关联操作。
3.delete:在执行delete时进行关联操作。
4.delete-orphan: 当save/update/saveOrUpdate时,相当于save-update ;当删除操作时,
相当于delete ;
Salesman是主控方,而 CarOrder是关联一方(数据库外键);
4.多对一关系映射总结
对于多对一关系映射设置<many-to-one>属性应该注意一下几点:
1、多对一方的cascade属性,应设置成save-update;
2、一对一方的cascade属性,应设置成delete;
3、一对一方的inverse属性,应设成true说明同步数据库根据carorder来,否则会多出很多update语句;
4、对于设置了关联的例子,保存时应把所有多方的对象都保存一次,这样才能保证数据库的数据和关系与对
象模型相匹配;
- 大小: 150 KB
分享到:
相关推荐
一头扎进 hibernate4 视频教程 java1234出品 第3部分 共3部分
JCA支持 3. SessionFactory配置 3.1. 可编程配置方式 3.2. 获取SessionFactory 3.3. 用户自行提供JDBC连接 3.4. Hibernate提供的JDBC连接 3.5. 可选配置属性 3.5.1. SQL Dialects SQL 方言...
第三步:对需要进行缓存的持久化对象进行配置. 第四步:编写测试类,体验Hibernate的二级缓存. 第五步:二级缓存的数据并发策略. 当我们使用二级缓存的时候,如果并发策略为:read-...
一头扎进 hibernate4 视频教程 java1234出品 第1部分 共3部分
Hibernate In Action 3 第三部分 中文 入门教程
本书由互联网上影响广泛的开放文档OpenDoc系列自由文献首份文档“Hibernate开发...深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.
本书由互联网上影响广泛的开放文档OpenDoc系列自由文献首份文档“Hibernate开发...深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.
本书由互联网上影响广泛的开放文档OpenDoc系列自由文献首份文档“Hibernate开发...深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.
hibernate入门教程第三版,英文版
2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2. 映射文件 2.2.3. Hibernate配置 2.2.4. 用Ant编译 2.2.5. 安装和帮助 2.2.6. 加载并存储对象 2.3. 第二部分 - 关联映射 2.3.1. 映射...
jsp Hibernate入门教程第1 3页.docx
最经典的hibernate教程_从入门到精通_第三篇
第三部分 hibernate3.1参考手册中文版.pdf Hibernate开发指南.pdf 深入浅出Hibernate.PDF
Struts2与Spring、Hibernate三者整合的过程示例: 示例工具:MyEclipse 7.0、Tomcat 6.0、MySql
本章是面向Hibernate初学者的一个入门教程。我们从一个使用驻留内存式(in-memory)数据库的简单命令行应用程序开始, 用易于理解...在这里,我们称第三方库文件是指JDK 1.4和5.0。若使用JDK1.3,你可能需要其它的库文件。
一头扎进 hibernate4 视频教程 java1234出品 第2部分 共3部分
本章是面向Hibernate初学者的一个入门教程。我们从一个使用驻留内存式(in-memory)数据库的简单命令行应用程序开始, 用易于理解...在这里,我们称第三方库文件是指JDK 1.4和5.0。若使用JDK1.3,你可能需要其它的库文件。
最经典的hibernate教程_从入门到精通_第三篇(共四篇)
速动画教程系列第三集 Struts 之 Hello Word 续,实现了返回用户名称
Hibernate教程_从入门到精通_第三篇(共四篇),有兴趣的可以看一看