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
分享到:
相关推荐
《精通Hibernate 3.0(第三版)》是Java开发者深入理解对象持久化技术的一本经典教程。本书全面覆盖了Hibernate 3.0的核心概念、API以及最佳实践,旨在帮助读者掌握这一强大的ORM(对象关系映射)框架,提升开发效率...
《Hibernate3基础教程中文版及源码》是一个针对Java开发者的重要资源,旨在深入理解并实践Hibernate3这一流行的对象关系映射(ORM)框架。Hibernate3是Java开发中的一个关键工具,它极大地简化了数据库操作,使得...
一头扎进 hibernate4 视频教程 java1234出品 第3部分 共3部分
- Hibernate的缓存分为第一级缓存(Session缓存)和第二级缓存(可配置的缓存插件,如Ehcache)。 - 缓存可以提高性能,但需注意并发和数据一致性问题。 9. **事务管理** - Hibernate集成JTA(Java Transaction ...
JCA支持 3. SessionFactory配置 3.1. 可编程配置方式 3.2. 获取SessionFactory 3.3. 用户自行提供JDBC连接 3.4. Hibernate提供的JDBC连接 3.5. 可选配置属性 3.5.1. SQL Dialects SQL 方言...
8. **缓存机制**:Hibernate有第一级缓存(Session级别的缓存)和第二级缓存(SessionFactory级别的缓存),以及查询缓存。理解缓存原理和配置缓存策略是提高性能的关键。 9. **实体生命周期**:理解Hibernate中的...
Hibernate 完整使用教程 Hibernate 是一种流行的开源持久层框架,允许开发者使用面向对象编程语言来访问关系数据库。下面是关于 Hibernate 的详细知识点: Hibernate 介绍 Hibernate 是一个开源的持久层框架,它...
三、Hibernate配置 要使用Hibernate,首先需要配置hibernate.cfg.xml文件,其中包含数据库连接信息、方言、缓存策略等。此外,还需要为每个实体类创建对应的.hbm.xml映射文件或使用注解进行映射。 四、实体映射 ...
【Hibernate雨夜的寂寞原创教程】是一份专为初学者设计的教程,旨在帮助学习者掌握Hibernate这一强大的Java对象关系映射(ORM)框架。Hibernate是Java开发中的一个热门工具,它极大地简化了数据库操作,使得开发者...
Hibernate提供了第一级缓存(Session级别的缓存)和第二级缓存(SessionFactory级别的缓存)。通过配置,可以启用和自定义缓存策略,提高数据访问速度。 十、事务管理 Hibernate支持JTA(Java Transaction API)和...
7. **缓存机制**: Hibernate提供了第一级缓存(Session缓存)和第二级缓存(可选),以及查询缓存,用于优化性能。 8. **关联映射**: Hibernate支持一对一、一对多、多对一、多对多的关联映射,通过配置实现对象...
第三步:对需要进行缓存的持久化对象进行配置. 第四步:编写测试类,体验Hibernate的二级缓存. 第五步:二级缓存的数据并发策略. 当我们使用二级缓存的时候,如果并发策略为:read-...
三、Hibernate配置 配置Hibernate涉及以下步骤: 1. 创建hibernate.cfg.xml文件,包含数据库连接信息、方言、缓存等配置。 2. 配置实体类,通过注解或XML映射文件将Java类映射到数据库表。 四、实体映射 1. 注解...
10. **缓存机制**:介绍Hibernate的缓存策略,包括一级缓存和二级缓存,以及第三方缓存集成,如Ehcache和Infinispan的使用。 11. **性能优化**:讲解如何通过优化查询、延迟加载、缓存策略等手段提高Hibernate应用...
本教程的【第一篇】将介绍Hibernate的基础知识和基本操作,【第二篇】会深入到关联映射和查询,【第三篇】涵盖性能优化和扩展性,而【第四篇】则聚焦于实际项目中的应用和问题解决。通过这四篇内容的学习,你将能够...
8. **缓存机制**:Hibernate提供了第一级缓存和第二级缓存,了解其工作原理和使用场景。 9. **性能优化**:讨论如何优化Hibernate应用,减少数据库交互,提高性能,如批处理、缓存策略等。 10. **案例分析**:通过...
这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供...
这个“Struts+Hibernate+Spring入门教程及实例”压缩包提供了学习这三大框架基础知识和实践操作的资源。 **Struts框架**: Struts是一个开源的MVC(Model-View-Controller)框架,主要用于构建基于Java EE的Web应用...
3. **Hibernate配置**:教程可能详细讲解如何配置Hibernate,包括创建hibernate.cfg.xml文件,设置数据库连接参数,以及加载实体类的映射文件。 4. **实体类与表映射**:学习如何使用Hibernate注解或XML配置文件将...
9. **缓存机制**:介绍一级缓存(Session级别)和二级缓存(SessionFactory级别),以及如何配置和使用第三方缓存如Ehcache。 10. **查询优化**:讨论如何优化HQL和SQL查询,包括使用预编译语句、避免N+1查询问题等...