querydsl을 사용하여 테이블 간 조인된 데이터를 가져올 때 오류가 발생함
@Override
public List<BeforeListDto> myBeforeList(Long id) {
List<Tuple> data = jpaQueryFactory.select(
beforeList.id, meeting.period, meeting.title
).from(beforeList).join(meeting).on(meeting.id.eq(beforeList.meeting.id))
.where(user.id.eq(id)).fetch();
return data.stream().map(
d -> BeforeListDto.builder()
.id(d.get(beforeList.id))
.period(d.get(meeting.period))
.title(d.get(meeting.title))
.build()).toList();
}
쿼리를 잘못 적었다. where절에 바로 user.id.eq(id)로 하면 안 되고 .where(beforeList.user.id.eq(id))
이렇게 적어야 한다. 내가 무슨 생각으로 바로 user를 가져다 넣었는지 모르겠다.
@Override
public List<BeforeListDto> myBeforeList(Long id) {
List<Tuple> data = jpaQueryFactory.select(
beforeList.id, meeting.period, meeting.title
).from(beforeList).join(meeting).on(meeting.id.eq(beforeList.meeting.id))
.where(beforeList.user.id.eq(id))
.fetch();
return data.stream().map(
d -> BeforeListDto.builder()
.id(d.get(beforeList.id))
.period(d.get(meeting.period))
.title(d.get(meeting.title))
.build()).toList();
}
이젠 데이터를 잘 불러온다.