Hibernate自动生成器与数据库交互策略
需积分: 0 62 浏览量
更新于2024-08-17
收藏 2.37MB PPT 举报
"该资源主要介绍了Hibernate框架中的一些核心概念和使用技巧,特别是关于自动生成功能、数据库关键字处理、HQL查询、数据库分页、级联操作以及继承关系的处理。"
在Hibernate中,自动生成功器是用于在数据库中自动生成主键值的一种机制。"此时ID即是主键也是外键"表示在一个特定的关系映射中,某个ID字段既作为当前表的主键,同时也作为另一张表的外键,这在一对多或多对一的关系中常见。例如,用户表和订单表,用户ID既是用户表的主键,也是订单表的外键,表示订单属于哪个用户。
当表名或字段名与数据库的关键字冲突时,有两种解决办法:一是避免使用关键字,为表或字段重新命名;二是使用反引号将表名或字段名括起来,以告诉数据库系统这是一个标识符而非关键字。
在Hibernate的查询语句中,可以使用HQL(Hibernate Query Language)进行操作,如“:n”用于表示从第n个记录开始查询,以及限制查询结果的数量来实现分页。此外,Criteria查询提供了一种面向对象的方式来检索数据,同样支持数据库分页。
对于一对多或多对一的关系,Hibernate默认会基于主表的主键创建外键关联。如果不想使用默认设置,可以通过“property-ref”属性指定参照主表的字段。如果不指定,可能会导致中间表的主键冲突。
在集合类型如List和Set的使用上,它们的区别在于Set不允许重复元素,而List则可以。在级联操作中,如果设置了级联保存或更新,那么当父对象(如Emps)发生变化时,子对象(如Employee)也会相应地更新。反之,如果不开启级联,子对象就不会被自动保存或更新。注意,有序集合如List和Array不能使用级联操作来维护关联关系。
在处理继承关系时,鉴别器(discriminator)是一个很重要的概念,它用于在数据库中区分不同子类的实例。同时,为了保证每个子类实例的唯一性,子类的ID不能与父类的ID相同,并且不能使用自增的主键生成策略(如native),可以选择uuid或hilo等其他策略。
最后,Hibernate默认使用懒加载(lazy loading)策略,以提高性能,只有在真正需要时才会加载关联的对象。而EAGER加载则会立即加载关联的对象,但这可能会影响性能,因为可能会导致更多的数据库查询。
2009-07-08 上传
2010-03-11 上传
143 浏览量
2008-11-12 上传
2007-05-12 上传
2008-11-27 上传
2009-02-21 上传
108 浏览量
150 浏览量
永不放弃yes
- 粉丝: 916
- 资源: 2万+
最新资源
- 2023-12版本ZLM流媒体平台Windows安装包
- MapReduce实现TopN中文词频统计+英文词频统计+中文词频统计
- c++信息学竞赛及算法4阶段60节体系课程PPT,循环嵌套,递归排序,贪心算法等
- 基于nodejs人事管理系统的设计与实现(论文+源码)-kaic.rar
- 计算机控制系统课程设计说明.rar+word格式
- 基于UDP的聊天机器人源码
- gan.rargan.rargan.rar
- 关于医院系统的mysql面试题及答案.rar
- C基础系列-第一个C程序HelloWorld
- log4j日志写入redis扩展
- springboot整合log4j入门程序
- STM32 密码锁程序加Proteus仿真
- CBM209X-UMPToolV7200(2020-05-20).zip
- C++ 数据结构知识点合集-C/C++ 数组允许定义可存储相同类型数据项的变量-供大家学习研究参考
- 快速搭建基本设计还原效果的 Android 项目QMUI-Android-master
- pdf转换工具-转换word、excel、PPT等