-
[JPA] 영속성 전이(CASCADE)와 고아 객체인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 11. 29. 17:53
예제 코드
@Entity public class Member { @OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE) private List<Post> postList = new ArrayList<>(); } @Entity public class Post { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; }
- 이 경우에 회원을 삭제하게 되면 관련된 게시글들도 삭제되게 된다.
그러면 영속성 전이는 언제 써야 하는가?
- OneToMany에 다 써야하는건 아니고 하나의 부모가 자식들을 관리하는 경우에만 사용하는 것이 좋다.
- 즉, 이 자식을 다른 엔티티도 아는 경우에는 사용하면 안된다.(이 자식이 다른 엔티티를 아는 경우는 상관없음)
- @OneToMany 속성에만 있음. 생각해보면 부모 - 자식 엔티티 관계에서 부모가 1쪽일 수밖에 없기 때문임.
- 즉, 자식 엔티티의 데이터 엑세스 계층이 없어도 된다.
출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편
https://www.inflearn.com/course/ORM-JPA-Basic
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의
현업에서 실제로 JPA로 개발을 하고 있습니다. 그런 입장에서보면 지금 작성하고 있는 코드들이 어떻게 작동하는지 이해하는데 큰 도움을 주는 강의입니다. 다음은 제가 느낀 이 강의의 장점들
www.inflearn.com
'인프런 - 스프링 > JPA 프로그래밍 - 기본편' 카테고리의 다른 글
[JPA] 객체지향 쿼리 언어(JPQL) 소개 (0) 2023.12.01 [JPA] 값 타입 (0) 2023.11.30 [JPA] 즉시 로딩과 지연 로딩 (0) 2023.11.28 [JPA] 프록시 (0) 2023.11.27 [JPA] Mapped Superclass - 매핑 정보 상속 (0) 2023.11.27