강의

멘토링

커뮤니티

Inflearn Community Q&A

omimabi775272's profile image
omimabi775272

asked

Real-world! Spring Boot and JPA Utilization 1 - Web Application Development

Order Repository Development

findAll 쿼리문?

Written on

·

342

0

2:06 -

orderRepository 에

public List<Order> findAllByString(OrderSearch orderSearch){...}

 

대신

 

public List<Order> findAllByString(){

return em.createQuery

("select o from Order m where m.orderStatus = :orderStatus", Order.class) .setParameter("name",name)

.getResultList(); }}

 

-> 이런식으로 코드를 짜도 되나요?

-> 가능하다면 같은방식으로

쿼리 where 절에 member의 name을 적용시킬수있나요?

웹앱spring-bootjavaspringJPA

Answer 1

0

안녕하세요. omimabi77님, 공식 서포터즈 OMG입니다.
.

아래 코드 틀에서(=기반으로) 진행이 되어야 할 것 같습니다.

  • 우선 작성하신 코드는 name으로 회원 주문을 찾으시려고하는 것 같은데 name을 받아오는 코드가 없습니다. 그래서 저는 "kim"이란 회원을 생성하고 "kim"을 찾도록 하였습니다.

  • OrderSearch ordersearch 파라미터는 쿼리에 적용하진 않았기 때문에 코드 상에서 제거하면 되나, 호출하는 코드 등 수정할 곳이 몇 군데 발생하여 수정하진 않았습니다.

  • 디버깅 orders.get(0).getMember().getName() 를 통해 kim이 주문한 회원의 이름이 kim 인 것을 확인하실 수 있습니다.

     

 

public List<Order> findAllByString(OrderSearch orderSearch) {
    List<Order> orders = em.createQuery("select o from Order o where o.member.name = :name", Order.class)
            .setParameter("name", "kim")
            .getResultList();
    return  orders;
}

 

image
.
감사합니다.

omimabi775272's profile image
omimabi775272

asked

Ask a question