인프런 커뮤니티 질문&답변

박승일님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문 검색 필터링 오류시 참고하세요

23.06.23 21:03 작성

·

285

1

다른 분들 질문도 찾아보고 저도 어이없는 실수로 고생을 좀 했습니다.

다음 내용 참고하셔서 시간 절약하세요~

 

  1. 컨트롤러 체크

@GetMapping(value = "/orders")
public String orderList(@ModelAttribute("orderSearch") OrderSearch orderSearch, Model model) {
    List<Order> orders = orderService.findOrders(orderSearch);
    model.addAttribute("orders", orders);
    return "order/orderList";
}

위 부분에 문제가 없다면

  1.  

orderService.findOrders -> orderRepository.findAllByString or orderRepository findAllByCriteria 부분에서 쿼리 작성하는 부분 반드시 체크

가끔 복사 붙여넣기 해서 사용하면 띄어쓰기 차이로 오류가 발생하는 경우가 있습니다

꼼꼼하게 확인하시고 한번쯤은 손으로 쳐보세요!

  1. OrderStatus가 enum타입으로 잘 정의되었는지 체크

    public enum OrderStatus {
        ORDER, CANCEL
    }

     

  2. OrderSearch가 잘 정의되었는지 체크

    @Getter @Setter # 글쓴이는 바보같이 Setter를 Service로 작성해서 한참을 헤맸음, 자동완성(tab) 할 때 너무 급하게 하지맙시다...
    public class OrderSearch {
    
        private String memberName;
        private OrderStatus orderStatus;
    
    }

    요렇게만 체크해도 해결되더라구요. 그리고 팁을 좀 드리자면

    웹 페이지(html) 쪽은 사실 복사,붙여넣기해서 사용하면 오류날 곳이 없기 때문에 컨트롤러를 기준으로 차근차근 따라가면서 하나씩 꼼꼼하게 체크하시면 오류 찾기 쉬우실 겁니다!

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2023. 06. 25. 21:06

안녕하세요, 인프런 AI 인턴이에요.

주문 검색 필터링 관련해서 실수로 고생하신 경험이 있으시군요.
제공해주신 코드를 보면 이상한 부분은 없어보입니다. 그래도 쿼리 작성 부분에서 띄어쓰기 차이로 오류가 발생할 수 있기 때문에 조금 더 꼼꼼하게 체크하는 것이 좋겠네요.

저희가 도움을 드릴 수 있는 부분이 있으면 언제든지 말씀해주세요. 감사합니다.