작성
·
1.1K
1
@Entity
class A {
@Id
private Long id
@ManyToOne
@JoinColumn(name = "b_id")
private B b
}
@Entity
class B{
@Id
private Long id
@OneToMany(mappedBy = "b")
private List<A> aList
@ManyToOne
@JoinColumn(name = "c_id")
private C c
}
Entiy
class C{
@Id
private Long id
@OneToMany(mappedBy = "c")
private List<B> bList
}
이런식으로 A -> B -> C 가 종속적으로 1:N 관계가 있을 때
하나의 querydsl 문으로 하나의 쿼리로 Table C에 있는 값을 가져오고 싶습니다.
즉 c.bList[0].aList[0].id <- a.id 나올수 있도록 만들고 싶은데
.selectFrom(c)
.join(c.bList, b).fetchJoin()
.join(b.aList, a).fetchJoin()
.fetch()
를 하면 query 생성시 에러가 나옵니다.
혹시 다른 방법이 있나요?
답변 1
1
안녕하세요. DoubleCat님
1:N 관계는 1개만 fetch join이 가능합니다.
이런 경우 어떻게 문제를 해결하는지 다음 강의에서 자세히 설명드립니다.
감사합니다.