강의

멘토링

커뮤니티

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

최준성님의 프로필 이미지
최준성

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문 서비스 개발

질문있습니다

작성

·

181

0

안녕하세요!

4:58 부분에서 질문이 있습니다.

1.cascade Order 삭제할 경우에나 저장할 경우에나 편리하게 한번에 처리해주긴 하지만 orderItem 여러개 경우 save 쿼리가 여러번 나가는 것과 Order를 삭제하게 된다면 cascade에 따라 OrderItem개수만큼의 delete 쿼리가 나가는 것을 확인했습니다.

이렇게 된다면 cascade를 제거하고 벌크성 쿼리를 따로 만들어서 사용하는게 더 효율적이지 않을까 라는 고민이 드는데 보통 실무에서는 어떻게 하는지 궁금합니다.

2. 위 질문에서 만약 cascade보다 벌크성 쿼리의 사용을 선택했다고 가졍해보겠습니다. 만약 Order 엮여있는 cascade Oderitems 하나가 아니라 여러개 있다면 이걸 벌크성 쿼리로 바꿔줄 경우(insert에 대한 벌크성, delete에 대한 벌크성 쿼리) order 자체를 삭제하게 일일이 벌크성 쿼리를 날려줘야하는 불편함이 있는 같습니다. 이에 대한 편리한 방법이 있을까요?

 

3.  수정에 관련된 부분에서 질문입니다.

order save 상태에서 order orderitem 몇개 추가하는 상황이 발생한다면 order orderitem 리스트에 add 추가시켜줘도 이것은 save하는 상황이 아니니 cascade 적용되지 않을테고, mappedBy이므로 추가시켜도 더디체킹이 되지 않는다는 생각이 듭니다. 그렇다면 이렇게 추가해야하는 상황에서는 추가하고자 하는 OrderItem 엔티티를 save 하고 java 코드상으로 Order orderitem 추가를 해주면 되는 것일까요?  

 

 

 

답변 1

0

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

안녕하세요. 최준성님

1,2 번은 사실 트레이드 오프 입니다.

추천하는 방법은 코드가 깔끔한 방법을 선택하고, 성능은 정말 문제가 될 때 고민하셔도 됩니다.

3. 이 부분은 제가 답을 바로 적어드리는 것 보다는, 직접 코드로 테스트 해보시고 결과를 남겨주세요^^ 그러면 더 많은 것을 배우실 수 있을거에요.

감사합니다.

최준성님의 프로필 이미지
최준성

작성한 질문수

질문하기