외래키가 기본키에 포함되는지 여부에 따라 식별관계, 비식별 관계로 구별할 수 있다. 아래의 경우 부모테이블의 키가 자식테이블에 참조되는데 비 식별관계이다. 부모테이블의 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; }