주문, 주문상품 엔티티 개발


상품 주문, 주문 내역 조회, 주문 취소 기능을 구현하기 위해 엔티티에 메서드를 추가한다. 상품 주문시 상품의 재고가 감소하고, 취소 시 재고가 증가해야 한다.

생성 메서드

주문과 주문상품의 경우 생성 시 재고를 관리해야 하고 다른 여러 엔티티들과 연관관계를 맺어줘야 한다. 이렇게 엔티티를 생성하기 복잡하다면 새롭게 생성 메서드를 만드는 것이 좋다.

<aside> 💡

정적 팩토리 메서드

객체를 생성하는 메소드를 만들고 static으로 선언해 캡슐화하는 기법이다. 이 때, 다른 방법(new 등)으로 객체를 생성하지 못하게 protected 생성자를 따로 명시해주는 것이 좋다.

</aside>

비즈니스 로직

조회 메서드

주문 리포지토리 개발


주문 리포지토리 코드

@Repository
@RequiredArgsConstructor
public class OrderRepository {

    private final EntityManager em;

    public void save(Order order) {
        em.persist(order);
    }

    public Order findOne(Long id) {
        return em.find(Order.class, id);
    }

//    public List<Order> findAll(OrderSearch orderSearch) {}
}