• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

order에 빨간불이 들어 옵니다 ㅠㅠ

20.05.11 07:36 작성 조회수 179

0

//배송정보 생성

Delivery delivery = new Delivery();
delivery.setAddress(member.getAddress());

//주문상품 생성

OrderItem orderItem = OrderItem.createOrderItem(item, item.getPrice(), count);

//주문 생성
Order.createOrder(member, delivery, orderItem);

//주문 저장
orderRepository.save(order);
return order.getId(); }

오더에는 빨간불이 들어오고 생성할땐 (order()) 이런식으로 생성되어야 불이 꺼집니다.

그리고  Delivery는 녹색 네모칸이 켜져 있습니다 ㅠㅠ

어떤 문제일까요?

빨간불 확인 내용

> Task :compileJava FAILED

C:\workspace\demo\src\main\java\com\example\demo\service\OrderService.java:51: error: cannot find symbol

        orderRepository.save(order);

                             ^

  symbol:   variable order

  location: class OrderService

C:\workspace\demo\src\main\java\com\example\demo\service\OrderService.java:52: error: cannot find symbol

        return order.getId();    }

               ^

  symbol:   variable order

  location: class OrderService

2 errors

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':compileJava'.

> Compilation failed; see the compiler error output for details.

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

1 actionable task: 1 executed

에러 코드 입니다.

답변 3

·

답변을 작성해보세요.

2

안녕하세요 runa0609님^^

위에 보내주신 코드조각을 유심히 보니 알겠네요^^

//주문 생성
Order.createOrder(member, delivery, orderItem);

여기에서 다음과 같이 반환값을 받아서 사용하시면 됩니다^^

//주문 생성
Order order = Order.createOrder(member, delivery, orderItem);

앞서 말씀하신 것 처럼 privaet Order order = new Order() 처럼 맴버변수로 선언하면 안되고, 보여드린 것 처럼 지역변수로 선언해야 합니다^^

또 막히면 문의 남겨주세요. 화이팅!

0

runa0609님의 프로필

runa0609

질문자

2020.05.11

코드는 선생님꼐서 주신 내용을 그대로 복사해서 붙였습니다. 그리고 강의를 10번이상 되감기 해서 똑같이 넣어놨지만 oder를 따로  private Order order = new Order();

이런식으로 선언해 줘야지만 빨간 불이 꺼집니다.

제가 이해를 못했는지 모르지만 말씀중에   

@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
private List<OrderItem> orderItems = new ArrayList<>();

이렇게 선언되면 따로 생성자를 선언 안해도 오류로 안뜬다고 하셨습니다. ㅠㅠ

억지로 저런식으로 꾸역 꾸역 고쳐가면서 하고 있는데 의도랑 달라지는거 같아 문의 드린겁니다.

0

안녕하세요. runa0609님

Delivery는 녹색 네모칸이 켜져 있습니다 ㅠㅠ -> 이 부분은 Delivery라는 단어로 검색을 하셔서 그렇습니다^^

빨간불은 자바 문법 오류입니다. 코드를 다시한번 잘 살펴봐주세요^^