목록스프링부트 (11)
관심쟁이 영호

제일 중요한 부분이다. 변경감지와 병합 이것에 대해서 알기전에, 왜 이것을 배우느냐? 실제로 웹에서 스프링 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("/") 이렇게 작성하면, 기본 ..

이번 시간에는 주문 도메인을 개발할거다. 개발자님께서 이 부분이 가장 중요하다고 하신다. 실제 비즈니스 로직들이 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..

아키텍처를 살펴보면 Controller와 Repository를 연결해주는 Service가 필요하다. 1. Service Pakage를 생성한다. 코드를 입력해준다. // MemberService.class //Repository와 똑같이 @Conponent를 가지고 있다. 똑같이 spring Component scan 단계를 거치도록 하기 위함인 듯 하다. @Service @Transactional(readOnly = true) //데이터 변경은 기본적으로 트랜잭션안에 있어야 한다. @RequiredArgsConstructor // 자동 주입 public class MemberService { //@Autowird를 추가한다면, //EntityManager의 @PersistenceContext와 똑같이 ..

1. Getter와 Setter 실무에서는 Getter를 이용하여 데이터 조회를 하는 경우가 상당히 많다. 그래서 Getter를 열어두지 않으면 많이 힘들다. 그래서 열어두는 것이 좋다. 반면에, Setter는 데이터를 잘못 바꾸는 경우가 있어서 열어두었다가 어느 부분에서 어떻게 데이터가 업데이트 되었는지 파악하기가 힘든 경우가 있다. 그래서 꼭 필요한 경우가 아니라면 Setter를 닫아두는 것을 추천하신다. -> 변경전용 비지니스 메서드가 필요하다. 2. 엔티티 식별자 엔티티의 식별자는 id, PK 컬럼명은 member_id를 사용해주는 이유는, 엔티티는 타입이 있어서 id필드 만으로 쉽게 구분할 수 있지만, 테이블은 타입이 없다. 그래서 구분이 상당히 힘들다. 그리고 관례상 테이블은 테이블명 + id..

이번 게시글은 이전 수업의 연장으로 다른 엔티티를 살펴볼 예정이다. ※ 현재까지 느낀 바로는, 문서를 읽을 줄 아는 능력이 필수인 듯 한다. 그 의미는 UML을 읽을 줄 알아야한다. 1. 클래스를 완성시켜준다. - OrderItem, Item, Delivery, Address를 작성해준다. // OrderItem @Entity @Getter@Setter public class OrderItem { @Id @GeneratedValue @Column(name = "order_item_id") private Long id; private Item item; @ManyToOne @JoinColumn(name = "order_id") private Order order; private int orderPrice;..