• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

Persistent 옵션을 사용해야만 저장이 되는 부분이 잘 이해가 되지 않습니다ㅠ

20.02.01 17:11 작성 조회수 94

0

안녕하세요!!

관계 맵핑 강의에서는

account.getStudies().add(study); 

study.setOwner(account);

이런식으로 양방향 관계 설정 후 값을 확인 하면 값이 잘 들어간 것을 볼 수 있었는데

이번 강의에서도 setter에 값을 넣고 save 까지 완료하였으므로 둘 다 Persistent 상태가 되었다고 생각이 드는데

Post post = new Post();
post.setTitle("DATA JPA 언제보나");

Comment comment = new Comment();
comment.setComment("빨리 보자");

이 부분에서는 실제로 값이 들어가지 않았고

cascade Persistent 옵션을 사용해줘야 값이 전달이 되어서 들어간 것을 볼 수 있었습니다.

전 강의와 지금 강의에서의 차이점이 잘 이해가 되지 않는데 이 부분에 대해서 알려주실 수 있으실까요?

미리 감사드립니다!!

답변 2

·

답변을 작성해보세요.

1

엔티티의 상태 변화를 전파시키는 옵션이 Cascade 옵션입니다. 이번 수업에서 보여드린 예제는 Post를 저장할 때 Comment도 같이 Persistent 상태로 전이 되도록 설정한 예제를 보여드린거구요. 말씀하신대로 Persistent 상태가 되는 시점은 save를 호출한 시점입니다.

이전 수업은 Account와 Study를 각기 를 따로 만들어서 이미 save를 했고, 그 다음에 트랜잭션 안에서 둘을 연결한 것이구요. 

여기서는  Post의 save를 호출하기 전에 Post와 Comment 둘을 new로 만들어서 미리 연결하고 Post의 save만 호출해서 persistent 상태로 만들때 Comment도 같이 persistent 상태가 되도록 Cascade 옵션을 사용한 예를 보여드린겁니다.

0

조석훈님의 프로필

조석훈

질문자

2020.02.03

아 제가 착각했네요 설명감사드립니다!