【Hibernate步步为营】--复合主键映射详解

本文详细探讨了Hibernate中的复合主键映射,解释了如何通过<composite-id>标签配置映射文件,以及如何进行数据的写入和加载操作。文章以FiscalYearPeriod类为例,说明了复合主键类需要实现Serializable接口,主键属性和其他属性应分开到不同的类中,以确保数据库的优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      上篇文章讨论了继承映射,它是对象模型中最基本的特性,对于继承映射它的主要区分是字段类型的不同,所以在生成表结构时需要有新列来标识数据的类型,可以使用<subclass>标签并在标签中添加discriminator-value鉴别器。该篇文章来讨论复合主键映射,它是指主键是多列的组合,现在在设计数据库时很少用到复合主键,因为考虑到数据库的优化,常常会把复合主键拆分到两个表中,并利用一个关系表来维护两个表的关系,关系表中不添加主键。


一、复合主键映射


       复合主键映射需要在映射配置文件中使用<composite-id>标签,该标签是指将一个类指定为相应的复合主键,它的name属性需要指定类文件中定义的属性值,并在该标签中添加<key-property>子标签。

       Note:想要使用复合映射必须要将复合主键放到一个类中,也就是讲复合主键属性和其它属性分到两个类中,并将复合主键的类实现接口Serializable,该接口隶属于java.io。

       复合主键的映射关系的主键是由多个列复合而成的,对应到数据表中相当的简单,如下图:


  1、类文件


       这里就拿上图的表来作为示例,在表中有两个字段年限和持续时间组合成为表的主键,所以分成的新类分别命名为FiscalYearPeriod和FiscalYearPeriodPK,其中FiscalYearPeriodPK类封装表的主键属性,FiscalYearPeriod类封装其它属性以及FiscalYearPeriodPK类。


   1.1 FiscalYearPeriod.java

      类中封装有基本的属性,并把FiscalYearPeriodPK类作为属性封装到类中,并在配置文件中配置相应的映射࿰

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值