• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

일대다 collection select 질문

21.07.08 22:32 작성 조회수 273

0

JPA 활용 2강의 - 컬렉션 조회(One To Many) - v3.1 방법으로 ToOne 관계만 fetch join하고, batch_fetch_size 설정했습니다.

QueryDsl에서 hospital 엔티티의 id를 통해 원하는 것만 조회하고 싶은데

reviewHospital가 List 형태라서

review.reviewHospitals.hospital.id.eq(id) 이런식으로 안 됩니다.

그래서 생각해낸 게 contain으로 JPAExpression을 이용해서 

where 절에 hospital id를 입력해서. 병원에 해당하는 id를 검색했습니다.

java.sql.SQLException: Subquery returns more than 1 row

그런데 위와같이 subQuery가 1개 이상이라고 오류가 나더군요. 

hospital.id에 맞는 여러 개의 Review들을 조회하고 싶은데 다른 방법이 있는지 궁금합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요. kr즈아님

review, reviewHosptial을 조인하고

추가로 reviewHosptial, hosptial을 조인해야 원하는 결과를 얻을 수 있습니다.

그리고 .eq 말고, .in을 사용하시면 in 절을 사용할 수 있습니다.

조인 관련해서 JPA 기본편의 다음 강의를 참고해주세요.

조인

경로 표현식

감사합니다.