[jpa기초강좌] 식별자매핑, 복합키매핑 @embeddedid,...

6
SPRING DATA JPA 식식식 식식 이이이 , 이이이이이 (topcredu.co.kr) 식식식 식식 , @EmbeddedId, @Embeddable

Upload: 3-2

Post on 14-Apr-2017

399 views

Category:

Education


2 download

TRANSCRIPT

Page 1: [JPA기초강좌] 식별자매핑, 복합키매핑 @EmbeddedId, @Embeddable_자바/스프링프레임워크/마이바티스/ORM/JPA실무교육학원

SPRING DATA JPA 식별자 매핑

이종철 , 탑크리에듀 (topcredu.co.kr)

복합키 매핑 , @EmbeddedId, @Embeddable

Page 2: [JPA기초강좌] 식별자매핑, 복합키매핑 @EmbeddedId, @Embeddable_자바/스프링프레임워크/마이바티스/ORM/JPA실무교육학원

식별자 매핑 (@EMBEDDEDID, @EMBEDDABLE) @EmbeddedId : 이 어노테이션이 붙은 멤버에 식별자 (PK, Key) 로써 포함된다는 의미 , 식별자 클래스는 @Embeddable 어노테이션으로 다른 엔티티에 포함된다고 선언해야 하며 이 클래스는 @Id 를 가질 수 없고 엔티티 객체와 같은 테이블에 저장된다 .

@Embeddable : 식별자 클래스임을 선언히며 이 어노테이션의 붙은 클래스의 멤버는 Primary Key(PK, 식별자 ) 로서 포함된다 . Primary Key 들이 포함되는 클래스로 여러 칼럼으로 PK 가 이루어지는 복합키인 경우에 주로 사용한다 .

Page 3: [JPA기초강좌] 식별자매핑, 복합키매핑 @EmbeddedId, @Embeddable_자바/스프링프레임워크/마이바티스/ORM/JPA실무교육학원

식별자 매핑 (@EMBEDDEDID, @EMBEDDABLE) 예문 -1import java.io.Serializable;import javax.persistence.Embeddable;import javax.persistence.EmbeddedId;import javax.persistence.Entity;

// 테이블로 생성되는 엔티티 클래스임을 지정 , User 라는 테이블이 생성됨@Entitypublic class User {public User() {}

//UserPK.class 의 필드가 PK 로서 포함된다는 의미@EmbeddedId protected UserPK userPK;}

Page 4: [JPA기초강좌] 식별자매핑, 복합키매핑 @EmbeddedId, @Embeddable_자바/스프링프레임워크/마이바티스/ORM/JPA실무교육학원

식별자 매핑 (@EMBEDDEDID, @EMBEDDABLE) 예문 -2@Embeddable // 엔티티에 포함되는 식별자 클래스임을 지정class UserPK implements Serializable { // 아래 두필드가 User 테이블에 식별자 (PK) 로서 포함된다 . String fName; String lName;

public UserPK() { }public boolean equals(Object other) { if (other instanceof UserPK) { final UserPK otherUserPK = (UserPK) other; return (otherUserPK.fName.equals(fName) && otherUserPK.lName.equals(lName)); } return false;}public int hashCode() {return super.hashCode();}

}

Page 5: [JPA기초강좌] 식별자매핑, 복합키매핑 @EmbeddedId, @Embeddable_자바/스프링프레임워크/마이바티스/ORM/JPA실무교육학원

MARIA DB 테이블 생성 결과

Page 6: [JPA기초강좌] 식별자매핑, 복합키매핑 @EmbeddedId, @Embeddable_자바/스프링프레임워크/마이바티스/ORM/JPA실무교육학원

Practice makes an expert실무 JAVA, Spring Framework, JPA 교육 전문

구로디지털단지역 2 분 탑크리에듀 교육센터http://www.topcredu.co.kr/sub/crcl/lecture/java