작성
·
178
0
orderItems.size 를 테스트 할때 같은 인스턴스가
orderitem에 중복저장 되는 것 같습니다.
1이 아닌 2가 나와요.
List<OrderItem> orderItems = getOrder.getOrderItems();
for(OrderItem orderItem : orderItems) {
sout (orderItem);
}
하니까 같은 래퍼런스값을 가진 게 2번 똑같이 나왔습니다.
어디서 발생한건지 찾을 수 없어서 질문드려요
답변 2
0
안녕하세요. ryu님
문제는 OrderItem.setOrder 코드입니다.
다음 부분을 주석처리 해주시면 정상 동작합니다.
Order.addOrderItem 코드에서도 orderItems.add(orderItem); 코드를 통해서 넣고
추가로 다음 코드에서도 orderItem을 넣기 때문입니다. (중복으로 등록)
/** 연관관계 편의 메서드**/
public void setOrder(Order order){
this.order = order;
// order.getOrderItems().add(this); 주석처리해주세요.
}
양방향 연관관계에서는 이런 부분을 주의해야 합니다.
감사합니다.
0
안녕하세요. ryu님
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
https://bit.ly/3fX6ygx
주의: 업로드시 권한 문제 꼭 확인해주세요
감사합니다
test 에서 orderServiceTest 에서 발생한 문제입니다.
다만, 수업을 쭉 진행하면서 localhost 에서 직접 order 을 넣을때는 하나만 들어가서 정상적으로 동작했습니다..
test 를 잘못 작성한것 같은데 잘 못찾겠습니다.
작성하신 코드가 하나도 없습니다. 올리신 구글드라이브 링크에서 다운로드해서 실행해보시면 아실 수 있어요
혹은 링크 들어가서 OrderServiceTest코드 있는지 확인해주세요.
확인 후 다시 올려주세요
아이고 이런. 감사합니다.