리포지터리 제공 기본 기능 두가지
리포지터리 인터페이스는 애그리거트 루트를 기준으로 작성함.
주문 애그리거트는 Order를 비롯해 OrderLine, Orderer, ShippingInfo 등 다양한 객체를 포함하는데, 루트 엔티티인 Order를 기준으로 리포지터리 인터페이스를 작성함.
public interface OrderRepository {
Order findById(OrderNo no);
void save(Order order);
}
스프링 데이터 JPA는 아래 규칙에 맞게 리포지터리 인터페이스를 정의하면 리포지터리를 구현한 객체를 알아서 만들어 스프링 빈으로 등록해줌.
public interface OrderRepository extends Repository<Order, OrderNo> {
...
}