bellight
60
2020-06-13 02:22:06 작성 2020-06-13 03:37:50 수정됨
2
273

JPA에서 OneToMany관계에서 내부적으로 limit를 쓸수있는 방법이 없을까요?


안녕하세요.


public class Member {

  ...

  @OneToMany(mappedBy = "member")

  private List<Order> orders = new ArrayList<>();

}


public class Order {

  ...

  @OneToMany(mappedBy = "order")

  private List<Item> items = new ArrayList<>();

}


와 같은 상황에서 페이징 처리된 member list를 로드하려고합니다.

이때 list 에는 각각의 member와 함께 안에 order목록도 최대 10개까지 포함되어야합니다.


[{

  member1,

  orders: [{}]

}, {

  member2,

  orders: [{}]

}]


이런식으로요.


Member entity안에 OneToMany관계인 orders는 @EntityGraph를 사용해 n+1을 방지하면 되겠다 생각했지만, orders를 10개까지만 가져오는 방법을 모르겠습니다. 

이상황에서 limit를 걸수있는 방법이 있을까요?

0
  • 답변 2

  • 답정너심판자
    2k
    2020-06-13 04:41:55
    커스텀 쿼리로 해결해야할거 같습니다.
  • JohnMark
    529
    2020-06-13 11:22:37

    Jpql또는 QueryDsl로 하시면 될것 같아요

  • 로그인을 하시면 답변 을 등록할 수 있습니다.