hibernate中有关联合主键的理解

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


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

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

你可能感兴趣的:(hibernate中有关联合主键的理解)