PK 두개 이상시 매핑

Posted at 2009. 12. 24. 14:04 | Posted in Framework/Hibernate
반응형


위와 같은 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
}

반응형

'Framework > Hibernate' 카테고리의 다른 글

Reverse Engineering  (0) 2009.12.24
Hibernate 시작하기  (0) 2009.12.23
Criteria 사용하여 질의 하기 #2  (1) 2009.10.03
Criteria 사용하여 질의 하기 #1  (4) 2009.09.10
다대다(n:m) 관계 설정하기  (0) 2009.09.02
일대다(1:n) 관계 설정하기  (1) 2009.08.31
일대일(1:1) 관계 설정하기  (0) 2009.08.27
하이버네이트(Hibernate) 사용하기  (6) 2009.08.24
//