一.创建PK类
import java.io.Serializable;
public class PKCode implements Serializable {
private Integer code;
private Integer codeType;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public Integer getCodeType() {
return codeType;
}
public void setCodeType(Integer codeType) {
this.codeType = codeType;
}
public boolean equals(Object obj) {
return super.equals(obj);
}
public int hashCode() {
return super.hashCode();
}
}
二.创建实体
public class Code extends MainEntity {
private PKCode codePk;
private String name;
public PKCode getCodePk() {
return codePk;
}
public void setCodePk(PKCode codePk) {
this.codePk = codePk;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class CodeType extends MainEntity {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
三.创建映射文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!--CODE表 --> <hibernate-mapping package="org.apache.dream.common.entity"> <class name="Code" table="T_CODE"> <composite-id name="codePk"> <key-property name="code" column="I_CODE_ID" /> <key-property name="codeType" column="I_CODE_TYPE_ID" /> </composite-id> </class> </hibernate-mapping>
四.联合主键做外键
<!-- 状态 --> <many-to-one name="status" class="org.apache.dream.common.entity.Code"> <column name="I_STATUS_CODE_ID" /> <column name="I_STATUS_CODE_TYPE_ID" /> </many-to-one>