hibernate中有关联合主键的理解

本文介绍了如何在实体类中设置联合主键,通过定义包含多个属性的主键类,并将其作为实体的一个属性来实现。此外,还强调了重写equals()和hashCode()方法的重要性。

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

如果想把数据库中的两个以上字段定义成主键,就要用到联合主键。哪么应该怎么实现呢?


我们在定义实体的时候使用annotation定义主键@id,我们可以从新定义一个主键类,把想设定成主键的属性都放在这类中。让后再把这个类作为一个属性定义在实体中。
例如:定义了一个student实体,想把这个实体的id和name属性同时设定成主键,我们可以从新定义一个具有id和name属性的类,并在这个类中,定义set和get方法。除此之外还要重写equal()和hashcode()方法,但是为什么还要重写这两个方法呢?以下是自己的一点愚蠢的理解:

  • 我们知道在创建一个对象的时候,在内存在查找需要使用hash表,那么hashcode就是凭证,我们平时用默认的qual()和hashcode()方法就可以了,但是联合主键不一样。而且使用数据库中的方法,在内存中查找对象时,只要联合主键类的实例的哈希码不同,这两个对象就是不一样的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值