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 }