プライマリ・キーを結合して外部キーを作成


一.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>