https://velog.io/@haeyoon12/%EC%8A%A4%ED%94%84%EB%A7%81-JPA-%EC%84%B9%EC%85%9878
[스프링 JPA] 섹션7,8
비즈니스 로직(도메인 로직)이란?컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성, 표시, 저장, 변경하는 부분을 일컫는다. 특히 데이터베이스, 표시장치 등 프로그램의 다른 부분과
velog.io
섹션7. 주문 도메인 개발
- 주문 엔티티, 리포지토리, 서비스, 테스트, 검색 기능 개발
섹션8. 웹 계층 개발
- 회원 등록, 목록 / 상품 등록, 목록, 수정, 주문, 취소
처음에 노션에 정리했는데 형식이 깨지는 관계로 vlog에 정리했습니다
퀴즈 & 질의 응답
1. updateItem 메서드에서 id 를 받아오는 방식의 차이
- 폼에 있는 아이디를 그대로 받아서 쓰면 안되는가 ?
- Hidden 이 있는 옵션에는 같은 동작으로 작동
- @PostMapping 은 url 값을 반환함 아이템으로 전달
- Formget 은 아이템을 참조해서 필드에 아이디값을 반환
- 수정이 필요없으니까 (hidden 을 사용 )
2. @ Valid, BindingResult


3. @ModelAttribute("form") , BookForm form 에서 form 2 개의 차이
- bookForm 은 변수이고 updateItem 에 쓰는 건 bookForm, 변수명이 바뀌어도 상관없음
- 인자로 넘기는 거 view 에 넘긴 건 ItemList.html 에 도달함. View 에 넘기는 역할 차이를 가지고 있음
- GetMapping 에서 받아온 것 updateItemForm 을 리턴함
updateItemForm 에 bookForm 에 바인딩이 됨. 마찬가지로 orderSearch & orderController 가 예시
4. 두 코드의 차이점?


- memberId 로 찾아서 전달 . 위아래 memberId 로 찾고 넘기고 밑에 코드처럼 멤버 객체를 만들면 Order 에서는 비영속엔티티가 됨 . ( 쌩 객체 )
- 첫번째 : 아이템을 넘기면 아이디로 엔티티조회를 처리하고 지연로딩이 되며 아래는 바로 조회하면 영속성 컨트롤러에 엔티티가 포함될 수 있음 . 하지만 관리밖에 있으 므로 영속성이 보장되지 않을 수 있음
- 두번째는 트랜재션과 영속성을 처리하지 못할 수 있으므로 권장하지 않음
- 지금은 어노테이션이 있기에 보장이 되지만 없으면 영속성이 보장되지 않음