타 repository에 대한 접근

mil nil·2023년 1월 20일
0

service단에서 타 repository에 대한 접근

  • service단에서 다른 repository에 접근하면 안 된다. 그러면 다른 service단에서 해당 repository에서 접근하는 메소드를 생성한 후 service 사이에서 불러와 사용

예시

@Transactional
public void order(OrderRequestDto orderRequestDto, Long customerId) {
// orderService에서는 orderRepository에만 접근해야 함, 필요할 경우 productService단에 메소드 생성하여 불러오기
Product product = productRepository.findById(orderRequestDto.getProductId())
                .orElseThrow(() -> new CustomException(ExceptionStatus.Product_IS_NOT_EXIST));
// 위와 마찬가지
User customer = userRepository.findById(customerId)
                .orElseThrow(() -> new CustomException(ExceptionStatus.USER_IS_NOT_EXIST));
        // 주문시 고객이 결제.
customer.payForOrder(product.getProductPrice(), orderRequestDto.getQuantity());

product.subtractQuantity(orderRequestDto.getQuantity());
Orders order = new Orders(product.getSellerId(), product.getId(), customerId, orderRequestDto.getQuantity());
orderRepository.save(order);
userRepository.save(customer);
productRepository.save(product);
}

내용 추가 필요

profile
자바 배우는 사람

0개의 댓글