모든 멤버, 아이템 조회 후 템플릿에 넘김.
<select> 로 선택할수있게함. th:each 는 foreach 랑 같음. (있는 만큼)
여길 보면. value에는 멤버의 id, text에는 member의 이름이 들어간다. -> option value=""이므로 <select name="memberId" 이므로 memberId에 value값인 member의 id가 들어간 채로 넘어가게된다.
나머지도 동일
->memberId : member의 아이디.
-> itemId : item.id
-> 주문수량은 name="count"이므로 count값이 넘어옴.
만약 여기서
!!##중요
주로 커맨드성( 주문) 같은 것들은 컨트롤러 레벨에서는 식별자만 넘김( 위에서 memberId, itemId 같이 )., 실제 핵심 비지니스 서비스에서 엔티티찾기부터 진행 -> 엔티티의 값들도 @Transactional 안에서 꺼내야 영속성있게 진행할 수 있어서( 이 말이 이해가 안되면 전 포스트를 봐라) 그래야 해당 엔티티의 상태를 바꿀 수도 있다. ( 변경 감지 ) -> 그래서 가급적으로 컨트롤러에서는 식별자만 주고 서비스계층에서 엔티티조회하자.
주로 커맨드성( 주문) 같은 것들은 컨트롤러 레벨에서는 식별자만 넘김( 위에서 memberId, itemId 같이 )., 실제 핵심 비지니스 서비스에서 엔티티찾기부터 진행 -> 엔티티의 값들도 @Transactional 안에서 꺼내야 영속성있게 진행할 수 있어서( 이 말이 이해가 안되면 전 포스트를 봐라) 그래야 해당 엔티티의 상태를 바꿀 수도 있다. ( 변경 감지 ) -> 그래서 가급적으로 컨트롤러에서는 식별자만 주고 서비스계층에서 엔티티조회하자.
주로 커맨드성( 주문) 같은 것들은 컨트롤러 레벨에서는 식별자만 넘김( 위에서 memberId, itemId 같이 )., 실제 핵심 비지니스 서비스에서 엔티티찾기부터 진행 -> 엔티티의 값들도 @Transactional 안에서 꺼내야 영속성있게 진행할 수 있어서( 이 말이 이해가 안되면 전 포스트를 봐라) 그래야 해당 엔티티의 상태를 바꿀 수도 있다. ( 변경 감지 ) -> 그래서 가급적으로 컨트롤러에서는 식별자만 주고 서비스계층에서 엔티티조회하자.
참고.@Transactional 없이 밖에서 조회하면 영속상태가 아님. (JPA랑 관계가 없음.)
==================================== 7-9. 주문 목록 검색
주문 목록 가져오는 메서드. @ModelAttribute 해놓으면 Model에 자동으로 담긴다.(이름 없으면 변수명.)
굳이 모델에 안담아도 자동으로 담기고
이 부분이
@ModelAttribute 했던 orderSearch 가 object 에 들어온다.
submit 누르면 orderSearch에 값이 바인딩된다. ( membername, orderstatus)
# 수업 끝
과거에는 지금까지 뷰만드는 일이었지만 이제 API로 통신해야함.(JPA로 어떻게 API를 설계하나, API로 CRUD)
-> 다음시간 API 만들기
'Java, Spring > 스프링부트와 JPA 활용 1' 카테고리의 다른 글
@Transactional 과 영속성 컨텍스트 (0) | 2022.08.14 |
---|---|
7-7. 변경 감지와 병합(merge)(정말 중요)(정말 중요)(정말 중요) (0) | 2022.08.14 |
7-4~7-6. 상품등록, 상품목록, 상품수정(중요) (0) | 2022.08.13 |
7. 레이아웃, 회원가입, 회원조회(중요) (0) | 2022.08.13 |
6-5. 주문 검색 기능 개발 (0) | 2022.08.13 |