今天收到了一个新需求,需要更新一个有联合主键的表,一开始拿到数据库(DB2)的时候,打开发现它的key键有两个,再看唯一键却只有一条,但是一条记录里面对应了多个字段,于是我查了一下资料,发现原来所谓的一张表多个主键,一般称之为联合主键。关于联合主键我做了以下总结:
1、数据库的每张表只能有一个主键,不可能有多个主键。
2、所谓的一张表多个主键,我们称之为联合主键。联合主键:就是用多个字段一起作为一张表的主键。
3、主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。
另外关于联合主键表的配置问题,总结如下:将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并要重写equals和hashcode.最后在主类中(该类包含联合主键类中的字段)将联合主键字段都注解为@Id,并在该类上方将上这样的注解:@IdClass(联合主键类.class)。