250x250
Notice
Recent Posts
Recent Comments
Link
관심쟁이 영호
[#11.2] Spring Boot ㅣ 스프링 부트 ㅣ 주문 리포지토리 및 서비스 클래스 개발 본문
Bank-End/인프런- Spring 공부
[#11.2] Spring Boot ㅣ 스프링 부트 ㅣ 주문 리포지토리 및 서비스 클래스 개발
관심쟁이 영호 2021. 4. 16. 01:55반응형
이번 시간은 주문 Repository, Service를 구현할 예정이다.
1. 주문 Repository
// OrderRepository.class
@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){}
}
- Order를 저장하는 Save 매서드, 1개를 찾는 findOne 매서드를 추가해주었다.
- 검색기능을 수행해야하는 findAll은 추후에 구현한다.
2. 주문 Service
// OrderService.class
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class OrderService {
private final OrderRepository orderRepository;
private final MemberRepository memberRepository;
private final ItemRepository itemRepository;
//주문
@Transactional
public Long order(Long memberId, Long itemId, int count){
//엔티티 조회
Member member = memberRepository.findOne(memberId);
Item item = itemRepository.findOne(itemId);
//배송정보 생성
Delivery delivery = new Delivery();
delivery.setAddress(member.getAddress());
//주문 상품 생성
OrderItem orderItem = OrderItem.createOrderItem(item, item.getPrice(), count);
//주문 생성
Order order = Order.createOrder(member, delivery, orderItem);
//주문 저장
orderRepository.save(order);
return order.getId();
}
//취소
@Transactional
public void cancelOrder(Long orderId){
// 주문 엔티티 조회
Order order = orderRepository.findOne(orderId);
// 주문 취소
order.cancel();
}
//검색
/*
public List<Order> findOrders(OrderSearch orderSearch){
return OrderSearch;
}
*/
}
- 이전에 다른 Service와 같은 구조이다.
- 검색기능은 새롭게 다른 기능이므로, 이 다음에 다뤄볼 것이다.
300x250
'Bank-End > 인프런- Spring 공부' 카테고리의 다른 글
[#13] Spring Boot ㅣ 스프링 부트 ㅣ 웹 페이지 만들기 ㅣ html, css사용해서 매칭시키기 (0) | 2021.04.18 |
---|---|
[#12] Spring Boot ㅣ 스프링 부트 ㅣ 주문 검색기능 기발, 동적 쿼리 (0) | 2021.04.17 |
[#11.1] Spring Boot ㅣ 스프링 부트 ㅣ 주문 도메인 개발 (0) | 2021.04.15 |
[#10] 스프링 부트 ㅣ Spring Boot ㅣ 상품 도메인 개발 (0) | 2021.04.14 |
[#9.3] 스프링 부트 ㅣ Spring Boot ㅣ 기능 테스트, 테스트 코드 짜기 (0) | 2021.04.13 |
Comments