2. 엔티티 매핑(entity mapping) 2 4 연관관계 2-4-1. 복합키와 비식별 관계

 외래키가 기본키에 포함되는지 여부에 따라 식별관계, 비식별 관계로 구별할 수 있다. 
 아래의 경우 부모테이블의 키가 자식테이블에 참조되는데 비 식별관계이다. 부모테이블의 PK가 자식테이블에 외래키(FK)로 참조될 때 기본키(PK)로 내려가는 것이 아니라 일반 칼럼으로 참조되는 것이다. 
@Entity 
public class Parent { 
@EmbeddedId 
protected ParentKey pkey; 

@Embeddable 
public static class ParentKey implements Serializable 
{
@Column 
private String id1; 

@Column 
private String id2;
//getter, setter, equals, hashCode는 구현해야 한다. 



@Entity 
public class Child { 
@Id 
private String id; 

//JoinColumn의 name은 Child테이블의 조인 칼럼 이름이다. 
// referencedColumnName은 부모테이블의 칼럼 이름이다. 
@ManyToOne 
@JoinColumns({ 
@JoinColumn(name="parent_id1",referencedColumnName="id1"), 
@JoinColumn(name="parent_id2", referencedColumnName="id2") 
}) 
private Parent parent; 
 

Comments