복합키 - 식별관계3

PPakSSam·2022년 1월 13일
0
post-thumbnail
post-custom-banner

복합키 목차

복합키 - 식별 관계 목차


비식별 관계로의 전환

식별관계인 위의 다이어그램을 비식별 관계로 전환해보자.

// 부모
@Entity
public class Parent {

    @Id @GeneratedValue
    @Column(name = "PARENT_ID")
    private Long id;
    
    private String name;
}

// 자식
@Entity
public class Child {

    @Id @GeneratedValue
    @Column(name = "CHILD_ID")
    private Long id;

    private String name;
		
    @ManyToOne
    @JoinColumn(name = "PARENT_ID")
    private Parent parent;		
}

//손자
@Entity
public class GrandChild {

    @Id @GeneratedValue
    @Column(name = "GRANDCHILD_ID")
    private Long id;
    private String name;

    @ManyToOne
    @JoinColumn(name = "CHILD_ID")
    private Child child;		
}

식별 관계의 복합키가 없어지므로 식별자 클래스를 만들지 않아도 되고, 맵핑도 쉬우며 코드도 간단해졌음을 알 수 있다. 저장을 하는 save 로직에서도 훨씬 간단명료해짐을 알 수 있다.

Parent parent = new Parent();
parent.setName("PARENT_NAME#1");
em.persist(parent);

Child child = new Child();
child.setParent(parent);
child.setName("CHILD_NAME#1");
em.persist(child);

GrandChild grandChild = new GrandChild();
grandChild.setChild(child);
grandChild.setName("GRANDCHILD_NAME#1");
em.persist(grandChild);
profile
성장에 대한 경험을 공유하고픈 자발적 경험주의자
post-custom-banner

0개의 댓글