Framework/Hibernate

[스크랩]PK 두개 이상시 매핑

미련곰 2012. 3. 20. 17:34

[스크랩]PK 두개 이상시 매핑

출처 : http://antop.tistory.com/56




PK(Primary Key)가 두개인 테이블이 있습니다.

PK가 하나일때는 <id> 태그를 써서 쓰면 되지만, 두개일때는 <composite-id> 태그를 사용합니다.

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="model"> <class name="Code" table="common_code"> <composite-id> <!-- PK1 --> <key-property name="code" type="string"> <column name="code" length="10"> <comment>코드</comment> </column> </key-property> <!-- PK2 --> <key-property name="lang" type="string"> <column name="language" length="3"> <comment>언어</comment> </column> </key-property> </composite-id> <property name="codeDesc" type="text"> <column name="code_desc" not-null="false"> <comment>코드 설명</comment> </column> </property> </class> </hibernate-mapping>

그리고 클래스 파일은 Serializable 인터페이스를 구현해야 한답니다....

 
package model;

import java.io.Serializable;

public class Code implements Serializable {

    private static final long serialVersionUID = -14882784587978705L;
 
    private String code; // PK1
    private String lang; // PK2
    private String codeDesc;

    // getter, setter
}