表SWPBusinessToDo 拥有2个字段,一起构成主键。
使用的时候,例如:
//表的主体映射
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "TB_SWP_BusinessToDo")
@SuppressWarnings("serial")
public class SWPBusinessToDo implements java.io.Serializable{
@Id
private SWPBusinessToDoPK id;
public SWPBusinessToDoPK getId() {
return id;
}
public void setId(SWPBusinessToDoPK id) {
this.id = id;
}
}
//将形成主键的字段抽取出来,单独做一个嵌套映射。
//要求重写了equals 跟 hashCode 方法。
import javax.persistence.Column;
import javax.persistence.Embeddable;
@Embeddable
public class SWPBusinessToDoPK implements java.io.Serializable{
private static final long serialVersionUID = 1L;
private Long businessId;
private String operator;
@Column(name = "businessId", nullable = true, unique = false, insertable = true, updatable = true)
public Long getBusinessId() {
return businessId;
}
public void setBusinessId(Long businessId) {
this.businessId = businessId;
}
@Column(name = "operator", nullable = true, unique = false, insertable = true, updatable = true)
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof SWPBusinessToDoPK){
SWPBusinessToDoPK pk = (SWPBusinessToDoPK)obj;
if(pk.getBusinessId() == this.businessId &&
pk.getOperator().equals(this.operator)){
return true;
}
}
return false;
}
@Override
public int hashCode() {
return (this.operator + this.businessId).hashCode();
}
}
使用的时候,例如:
SWPBusiness = new SWPBusinessToDo();
SWPBusinessToDoPK pk = new SWPBusinessToDoPK();
pk.setBusinessId( businessId);
pk.setOperator(operatorId);
SWPBusiness.setId(pk);