Hibernate对象关系映射:每类一张表策略详解
需积分: 10 127 浏览量
更新于2024-08-15
收藏 4.94MB PPT 举报
在Hibernate教程中,讨论了“每个具体类一张表”策略的优缺点。这种策略将每个具体的子类映射到数据库中的一张单独的表,以便为子类的成员属性提供更精确的控制,如设置not null约束。优点包括:
1. **灵活性**:针对子类特性定制字段,有助于维护特定业务逻辑。
2. **数据完整性**:通过直接映射约束,确保子类数据的完整性。
然而,这种策略也存在明显的缺点:
- **不符合关系模型规范**:由于子类可能有许多重复的字段,这违背了关系数据库设计中的一致性和简洁原则,可能导致数据冗余和复杂性增加。
- **维护成本高**:随着子类的增多,表的数量也会相应增加,管理和维护这些表会变得复杂,尤其是当关系发生变化时。
- **性能影响**:虽然ORM框架提供了便利,但如果处理不当,频繁的表操作可能会降低性能,尤其是在进行大规模数据操作时。
为了克服模型不匹配(阻抗不匹配)的问题,Hibernate等ORM框架被提出,它们作为Java与关系数据库之间的桥梁,提供了一种自动和透明的数据持久化机制。ORM的主要优点包括:
- **提高生产力**:通过映射元数据,减少了手动编写SQL的繁琐工作,开发者可以专注于业务逻辑。
- **可维护性**:ORM框架使得代码结构清晰,便于团队协作和维护。
- **性能优化**:通过缓存机制和查询优化,提升了数据访问的效率。
- **厂商独立性**:ORM框架允许开发者在不同的数据库系统之间迁移应用,降低了对特定数据库的依赖。
当前流行的ORM持久层方案有多种选择,各有优劣:
- **SQL/JDBC**:基础成熟,但编码复杂,可读性差,不易维护且移植性受限。
- **EntityBean/CMP (EJB)**:尽管EJB3有所改进,但早期版本存在设计缺陷,移植性和可扩展性不足。
- **JDO**:简单易用但不够成熟,适合初学者。
- **Apache OJB**:性能稳定,但文档资源较少,过多的标准支持反而成为负担。
- **iBATIS**:提供了更精细的数据库操作控制,但可能牺牲部分ORM带来的便利。
每个具体类一张表策略虽然方便控制,但在设计上需权衡其带来的冗余和维护挑战,合理选择ORM框架是关键,以适应项目的需求和性能要求。
2019-03-05 上传
2019-03-05 上传
2019-03-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-07-26 上传
活着回来
- 粉丝: 25
- 资源: 2万+
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器