• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

영속성 전이 관련해서 질문드립니다.

19.04.16 14:25 작성 조회수 105

0

안녕하세요, 좋은 강의 감사드립니다.

영속성 전이 관련해서 궁금한 부분이 있어 질문드립니다.

OneToMany(이하 Parent, cascade = CascadeType.ALL) - ManyToOne(이하 Child) 의 관계가 있을 때

Parent에 아래와 같은 메소드가 있는 상태입니다.

public void addChild(final Child child) {
    this.getChildList().add(child);
    child.setParent(this);
}

Parent를 새로 save한 뒤, Child를 add하면 Parent insert, Child insert 모두 정상적으로 수행됩니다.

하지만 update 시에는 Parent를 update한 뒤 Child를 새로 add해도

Parent update만 수행되고 Child는 insert되지 않는데요,

cascade = CascadeType.ALL 로 영속성 전이를 설정해도

PERSIST - PERSIST, MERGE-MERGE, 이런 식으로 같은 타입의 상태만 전이가 되는 것인지 궁금합니다.

설명이 잘 되었는지 모르겠네요.

답변 기다리겠습니다, 감사합니다.

답변 1

답변을 작성해보세요.

1

코드 없이는 이해하기가 어렵네요.

"하지만 update 시에는 Parent를 update한 뒤 Child를 새로 add해도"

일단 여기서 Parent에서 전이 되도록 설정했으니 update할때 전이가 됐을꺼고 add는 그 뒤에 하셨다니까. 그 당시엔 insert가 안됐을거 같네요. Child를 먼저 add 하시고 그 다음에 update를 해야 순서가 맞는거 같긴 합니다.