1)创建一个包含联合主键的类,并在类上注释@Embeddable
@Embeddable @Data public class BuSqpzCompositeId implements Serializable { private static final long serialVersionUID = -3304319243957837925L; /** * 事业部分配头寸头ID */ @Column(name = “POSITION_EMPOWER_HEADER_ID”, length = 255) @Size(max = 255) String positionEmpowerHeaderId;
/** * 事业部编码 */ @Column(name = "EMPOWER_DEPARTMENT_CODE", length = 255) @Size(max = 255) private String empowerDepartmentCode; /** *文件类型 */ @Column(name = "DOCUMENT_TYPE") private String documentType;/** *重写equals方法和hashCode方法 */ @Override public boolean equals(Object o) { if(o instanceof BuSqpzCompositeId){ BuSqpzCompositeId key = (BuSqpzCompositeId)o ; if(this.positionEmpowerHeaderId == key.positionEmpowerHeaderId && this.empowerDepartmentCode.equals(key.empowerDepartmentCode) && this.documentType==key.documentType){ return true ; } } return false ; }
@Override public int hashCode() { return this.empowerDepartmentCode.hashCode(); }} 2)在entity类中引用联合主键,并在引用上注解@Id
@Data @Entity @Table(name = “NCRM_BU_SQPZ_V”) @Generated(value = “com.yonyou.ocm.util.codegenerator.CodeGenerator”) public class NcrmBuSqpzV { @Id private BuSqpzCompositeId userRoleCompositeId; /** * 事业部分配头寸头ID / /@Id @Column(name = “POSITION_EMPOWER_HEADER_ID”, length = 255) @Size(max = 255) private String positionEmpowerHeaderId;*/
/** * 共享事业部编码 */ @Column(name = "SHARE_DEPARTMENT_CODE", length = 255) @Size(max = 255) private String shareDepartmentCode; /** * 共享事业部名称 */ @Column(name = "SHARE_DEPARTMENT_NAME", length = 255) @Size(max = 255) private String shareDepartmentName;}