작성
·
287
0
Repository 를 통해서 join 으로 데이터를 가져와서 처리하는것
Entity 에 비즈니스 모델을 넣어서 객체 그래프 탐색을 통해 데이터를 처리하는것.
예를들어 user(1) 과 article(n) 관계가 있다고하면,
유저가 작성한 글의 개수를 구해야되는 문제가 있을때,
ArticleRepository.getCountByUserId(Long user_id)
user.articles.length
위 두가지 방법이 어느 차이가 있고 어느 방법이 더 선호되나요?
1번 방법은 DB 를 통해 가져와서 DB가 연산을 수행할거고,
2번 방법은 엔티티에서 객체그래프탐색을 통해 FK데이터에 접근해서 메모리에서 길이를 연산한다는 차이가 있다는것까진 이해했습니다.
강의에서는 주문취소를 할때, order 에 orderItem 들을 취소처리하던데,
그럼 N+1 문제가 발생하지 않나요?
1개의 Order 에 OrderItem 이 N개면 추가적으로 쿼리를 계속 호출하는걸로 이해했습니다.
1번방법은 N+1 문제를 피할수있지만 모델에 비즈니스로직을 작성하지 못하고,
2번방법은 모델에 비즈니스로직을 작성할수있지만 N+1 문제가 발생하는걸로 이해했는데 맞을까요?