联合主键就是将几个字段都作为主键,或者说一个以上主键的都可作为联合主键或者复合主键,开发联合主键实体类对象必须做到三个要求,一是提供一个无参构造函数,二是必须实现序列化串行接口,三是必须重写HashCode和equals方法,参数是复合主键的属性。这里我们的实例用航班做,我们知道航班有起始地,也有终止点,他们有一个共同的航班名,所以可以用联合主键来做表设计,具体看代码。
首先定义航线实体:
/**
* 航线实体
*/
@Entity
@Table(name="t_airline")
public class AirLine {
@EmbeddedId
private AirLinePK id;
@Column(length=20,nullable=false)
private String name;
public AirLine(){}
//默认构造函数中引入联合主键参数
public AirLine(String startCity,String endCity,String name) {
this.id=new AirLinePK(startCity, endCity);
this.name = name;
}
}