我们都熟知,当合同到期后需要同公司进行合同续签,如果合同信息有变化或者内容有误等都需要进行合同变
更。为了保留历史数据,公司的做法一般都是封版现有生效的合同然后插入新的合同信息,这样每个员工都有一条或
者多条合同信息。在这种应用场景下一个主键id已经不能满足需求了,这时候我们可以考虑给它提供另外一个标识信
息来过滤当前有效信息,这样由多个字段组合成的主键即复合主键。这里假设以员工id和合同起始日期为主键来进行
讲解。
复合主键映射,通常需要将主键相关字段放到一个单独的类中进行维护。对于复合主键类需要满足两个要求:
* 1.实现序列化接口
* 2.覆盖equals和hashcode方法
equals方法用于判断传入的对象是否相同,EntityManager通过find方法来查找Entity时,是根据equals方法的
返回值来判断的。而为了保证该类可以结合所有基于散列的集合一起正常工作,同时需要覆盖hashcode方法。