목록Bank-End/인프런- Spring 공부 (26)
관심쟁이 영호

여기에 해당하는 내용은 앞서 포스팅한 내용이랑 똑같은 흐름이다. 앞에 내용을 참고해서 코딩을 해보자! 다음 시간에는 지금까지 했던 수업을 총 정리를 해볼 예정이다! 본 강의는 인프런의 김영한 개발자님이 강의하고 계신 "실전! 스프링 부트와 JPA활용1 - 웹 애플리케이션 개발"을 수강하면서 정리한 글입니다.

제일 중요한 부분이다. 변경감지와 병합 이것에 대해서 알기전에, 왜 이것을 배우느냐? 실제로 웹에서 스프링 JPA를 이용하면 이러한 구조가 될 것이다. - 위와 같은 구조이다. - 웹에서 사용자가 데이터를 변경하면, 폼을 통해서 코드로 넘어온다. form 객체로 넘어온 데이터를 영속성 컨텍스트로 넘겨주어야 한다. 여기서 문제이다. 먼저 여러가지 방법을 보자. /** * 상품 수정 */ @PostMapping(value = "/items/{itemId}/edit") public String updateItem(@ModelAttribute("form") BookForm form) { Book book = new Book(); book.setId(form.getId()); book.setName(form.ge..

오늘은 이전에 만들었던 코드부분을 직접 html을 만들고, css를 적용하고 실제로 동작을 시켜볼 예정이다. html, css수업이 아니기 때문에 코드에 대한 설명은 생략하셨다. 먼저 html과 css를 적용해야한다. 필요한 부분은 회원 가입, 회원 목록, 상품 등록, 상품 목록, 상품 주문, 주문 내역이다. 약간의 코드는 생략한다. 1. html 매칭시켜주기. //home Controller @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home(){ log.info("home controller"); return "home"; } } - @RequestMapping("/") 이렇게 작성하면, 기본 ..

이 강의에서는 주문 검색기능을 추가하였다. 주문 검색기능을 제일 마지막에 한 이유는, 사용자의 입력에 따라, 동적인 쿼리를 생성해주어야 하기 때문에 알아야하는 부분이 있다고 하신다. 근데 동적쿼리를 생성하는게 상당히 까다롭다고 하신다. 그냥 생성하면, 되는거지만 유지보수를 하다보면 상당히 고충이 있다고 하신다. 총 3가지의 방법이 있는데 - JPQL을 생성할 때, OrderState 값을 살펴보고 판단하는 방법. - Criteria 방법이 있다고 하신다. 이건 동적쿼리 생성을 도와주기 위해서 나온거라고 말씀 하셨는데, 상당히 코드를 구분하기가 힘들다. 만들 때는 어렵지 않지만 데이터가 JOIN되고, 조건붙고 하다보면 코드를 한번에 알아보기 힘들어서 유지보수가 힘들다고 하신다. - 실무에서는 3번째 방법을..

이번 시간은 주문 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 findAll(OrderSearch ordersearch){} } - Order를 저장하는 Save 매서드, 1개를 찾는 findOne 매서드를 추..

이번 시간에는 주문 도메인을 개발할거다. 개발자님께서 이 부분이 가장 중요하다고 하신다. 실제 비즈니스 로직들이 JPA로 어떻게 풀어나갈 수 있는지 볼 수 있다고 하신다. 1. 구현 기능 - 상품 주문 - 주문 내역 조회 - 주문 취소 2. 구현 순서 - 주문 엔티티, 주문상품 엔티티 개발 - 주문 리포지토리 개발 - 주문 서비스 개발 - 주문 검색 기능 개발 - 주문 기능 테스트 구현에 대한 기초 To Do List이다. 시작해보자. 3. 먼저 코드를 살펴보자. // Order.class @Entity @Table(name = "orders") @Getter @Setter public class Order { @Id @GeneratedValue @Column(name = "order_id") priva..