인프런 커뮤니티 질문&답변

송주용님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

영속성 전이(CASCADE)와 고아 객체

고아 객체 관련해서 질문이 있습니다.

21.01.18 22:57 작성

·

137

0

안녕하세요. JPA 강의 잘 듣고 있습니다.

고아 객체 관련해서 질문이 있는데요.

Parent 객체를 제거하게 되는 경우, Child 엔티티 delete 쿼리가 실행되는 것은 확인했는데

제가 생각했던 쿼리하고는 모습이 다른듯 해서요

실제로 Parent를 remove API를 사용하여 호출한 경우,

매핑 정보가 @OneToMany로 해당 엔티티를 알수있기 때문에

아래와 같은 쿼리가 전송 될 것으로 예상했었는데

delete from Child where parent_id = ?

delete from Parent where parent_id = ?

실제로는

delete from Child where child_id = ?

delete from Child where child_id = ?

delete from Parent where parent_id = ?

이런 식으로 전송이 되는 듯 해서요...

물론 JPA가 식별자를 기반으로 영속화 작업을 하기 때문에 그럴 수 있겠다고 이해는 하는데 Child가 많아질 수록 실행하는 쿼리 갯수가 많아질 듯한데요.

나중에 배우게 될 JPQL을 사용하는 방식으로 처리 해야 하는 건지 문의드립니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

2021. 01. 18. 23:24

안녕하세요. 주용님

정확하게 이해하셨습니다. 그리고 나중에 JPQL로 한번에 해결할 수 있습니다.

감사합니다.