작성
·
294
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";
}
위 부분에 문제가 없다면
orderService.findOrders -> orderRepository.findAllByString or orderRepository findAllByCriteria 부분에서 쿼리 작성하는 부분 반드시 체크
가끔 복사 붙여넣기 해서 사용하면 띄어쓰기 차이로 오류가 발생하는 경우가 있습니다
꼼꼼하게 확인하시고 한번쯤은 손으로 쳐보세요!
OrderStatus가 enum타입으로 잘 정의되었는지 체크
public enum OrderStatus {
ORDER, CANCEL
}
OrderSearch가 잘 정의되었는지 체크
@Getter @Setter # 글쓴이는 바보같이 Setter를 Service로 작성해서 한참을 헤맸음, 자동완성(tab) 할 때 너무 급하게 하지맙시다...
public class OrderSearch {
private String memberName;
private OrderStatus orderStatus;
}
요렇게만 체크해도 해결되더라구요. 그리고 팁을 좀 드리자면
웹 페이지(html) 쪽은 사실 복사,붙여넣기해서 사용하면 오류날 곳이 없기 때문에 컨트롤러를 기준으로 차근차근 따라가면서 하나씩 꼼꼼하게 체크하시면 오류 찾기 쉬우실 겁니다!
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
주문 검색 필터링 관련해서 실수로 고생하신 경험이 있으시군요.
제공해주신 코드를 보면 이상한 부분은 없어보입니다. 그래도 쿼리 작성 부분에서 띄어쓰기 차이로 오류가 발생할 수 있기 때문에 조금 더 꼼꼼하게 체크하는 것이 좋겠네요.
저희가 도움을 드릴 수 있는 부분이 있으면 언제든지 말씀해주세요. 감사합니다.