[jpa기초강좌] 식별자매핑, 복합키매핑 @embeddedid,...
TRANSCRIPT
SPRING DATA JPA 식별자 매핑
이종철 , 탑크리에듀 (topcredu.co.kr)
복합키 매핑 , @EmbeddedId, @Embeddable
식별자 매핑 (@EMBEDDEDID, @EMBEDDABLE) @EmbeddedId : 이 어노테이션이 붙은 멤버에 식별자 (PK, Key) 로써 포함된다는 의미 , 식별자 클래스는 @Embeddable 어노테이션으로 다른 엔티티에 포함된다고 선언해야 하며 이 클래스는 @Id 를 가질 수 없고 엔티티 객체와 같은 테이블에 저장된다 .
@Embeddable : 식별자 클래스임을 선언히며 이 어노테이션의 붙은 클래스의 멤버는 Primary Key(PK, 식별자 ) 로서 포함된다 . Primary Key 들이 포함되는 클래스로 여러 칼럼으로 PK 가 이루어지는 복합키인 경우에 주로 사용한다 .
식별자 매핑 (@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;}
식별자 매핑 (@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();}
}
MARIA DB 테이블 생성 결과
Practice makes an expert실무 JAVA, Spring Framework, JPA 교육 전문
구로디지털단지역 2 분 탑크리에듀 교육센터http://www.topcredu.co.kr/sub/crcl/lecture/java