주문 목록 뷰에서 사용한 코드 관련 질문입니다.
강의를 다시 복습하면서 코드를 다시 유심히 보다가 발견하지 못한 부분을 발견해서 질문드립니다
주문 목록을 타임리프를 이용해서 뿌리는 코드는 다음과 같은데요
여기서 의문점이 Order와 Member는 다대일 관계이기 때문에 Order 리스트에 대해서 Order id와 Member 정보는 저렇게 출력하는게 가능한데 Order와 OrderItem은 1대다 관계인데 orderItems[0] 형태로 0 인덱스만 주었는데 출력이 되어있는데요 orderItems는 리스트인데 인덱스는 0만 주어서 출력하는 부분에서 타임리프 가이드를 보긴 했는데 이런 케이스에 대해서는 왜 이런식으로 코드가 나오는지 이해 안돼서 질문드립니다.
왜냐하면 저렇게 하면 하나의 Order에 대해서 Orderitem이 하나 밖에 나오지 않아서요
검증쿼리는 다음과 같이 던져서 검증 했구요
SELECT M.NAME, O.ORDER_ID, I.ORDER_PRICE, I.COUNT, IT.NAME
FROM ORDERS O
, ORDER_ITEM I
, MEMBER M
, ITEM IT
WHERE 1=1
AND O.ORDER_ID = I.ORDER_ID
AND M.MEMBER_ID = O.MEMBER_ID
AND IT.ITEM_ID = I.ITEM_ID
ORDER BY M.NAME ASC, O.ORDER_ID ASC, IT.NAME ASC, I.COUNT ASC
출력결과는 다음과 같습니다.


저런 상황이 발생하지 않도록 알맞게 처리하기 위해서는
view에 뿌려줄 수 있도록 적절한 DTO로 변환해서 뿌려줘야하는 것이 맞는지 궁금합니다.
답변 1
1
안녕하세요. 갓다귀갓장국님, 공식 서포터즈 OMG입니다.
아래 질문글에서도 영한님이 답변해주시지만, 예제의 단순함을 위해0번째 인덱스로 [0] 고정하신 것입니다.
실제 구현한다면, item의 반복문을 수행하면서, orderItem의 반복문을 수행해야겠지요.
타임리프에서도 <th:block>을 이용하여 이중 for문이 가능합니다.
참고)
인덱스 0 고정이유
https://www.inflearn.com/questions/36625
타임리프 이중foreach문(nested loop)
https://stackoverflow.com/questions/19956493/nested-double-loop-with-thymeleaf
감사합니다.
OrderServiceTest 상문주문 테스트 시 update 쿼리 문의
0
30
1
sdk 설정 오류
0
71
2
오탈자 - @Transactional
0
68
1
src/test/resources 테스트 경로 문제
0
68
1
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
0
71
1
MemberRepositoryTest 실행오류
0
91
1
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
1
198
2
강의 마지막 QueryDSL 사용 부분 질문있습니다
1
154
2
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
0
58
1
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
0
82
1
기본 생성자
0
67
1
h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.
0
107
1
멤버서비스테스트 부분에서 막힙니다.
0
176
4
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
0
125
1
초반에 h2 다운로드 과정 꼭 필요한가요?
0
129
2
자신 필드에도 get으로 접근하는 이유가 있을까요?
0
122
1
24분 27초 연관관계 편의 메서드 위치
0
118
1
단건 주문만 가능하게 한건 의도한 부분이신가요?
0
115
2
빌드 툴, Gradle
0
65
1
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
0
82
2
Repository에서 EntityManager 주입 방식 차이
0
98
1
롬복과 사용자 정의 setter 메서드
0
78
1
주문 목록 조회 fetch join 질문드립니다
0
91
1
dirty checking 질문드립니다.
0
88
1





