Hibernate实体关系映射:Card.hbm.xml中的主键生成与一对一映射
需积分: 9 105 浏览量
更新于2024-08-18
收藏 359KB PPT 举报
"映射文件Card.hbm.xml是Hibernate框架中用于定义实体类Card与数据库表t_card之间映射关系的配置文件。它包含了类名、表名、主键信息以及一对一关联关系的设置。"
在Hibernate中,映射文件是XML格式的,它允许开发者详细指定Java对象如何与数据库中的表进行对应。`Card.hbm.xml` 文件中的配置信息如下:
1、**foreign主键生成器**: 在这里,`<generator class="foreign">` 指定了主键生成策略。`foreign` 策略意味着Card实体的主键`id`不是自动生成的,而是引用了另一个对象(Citizen)的外键。`<param name="property">citizen</param>` 指定这个外键对应的是`Citizen`实体的属性。
2、**类属性**: `<class name="com.demo.model.Card" table="t_card">` 表示`Card` 类对应数据库中的 `t_card` 表。`name` 属性是Java类的全限定名,而`table` 属性是数据库中的表名。`<id name="id" column="id" type="integer">` 定义了主键字段,`name` 是Java属性名,`column` 是数据库列名,`type` 是数据类型。
3、**一对一节点**: `<one-to-one name="citizen" class="com.demo.model.Citizen" constrained="true">` 描述了Card实体与Citizen实体之间的一对一关系。`name` 是关联的属性名,`class` 是关联实体的全限定名。`constrained="true"` 表示外键约束位于`Card`表上,即`Card`表包含对`Citizen`表的外键。
4、**约束(必须为true)**: 在Hibernate中,`constrained="true"` 表示一对一关系的外键约束在当前类(Card)中,这通常意味着在`t_card` 表中存在一个引用`Citizen.id`的列。这种约束方式可以确保数据的一致性。
此外,当使用Hibernate操作对象时,由于对象可能会被缓存,因此**实现hashCode与equals方法**至关重要。这两个方法用于在哈希表中正确地比较和定位对象。`hashCode` 方法返回一个整数值,使得相同对象的哈希码相同,不同对象的哈希码尽可能不同;`equals` 方法则用于判断两个对象是否相等。在处理对象关联关系时,尤其是涉及到一对多或一对一关系时,正确的`hashCode` 和 `equals` 实现能确保集合操作(如添加、查找和删除)的正确性。如果不正确实现,可能导致集合中无法正确识别和处理对象,进而引发错误。
2013-05-25 上传
2008-11-14 上传
2015-11-10 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-11-20 上传
三里屯一级杠精
- 粉丝: 32
- 资源: 2万+
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作